`
rebecca
  • 浏览: 315361 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

(边框内部) 图片的拖放

阅读更多

head中引用:

 

  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
 

实现拖动到js代码:

 

 <script type="text/javascript">
//           拖动
//  jQuery.noConflict()


var ddimagepanner={

	init:function($, $img, options){
		var s=options
		s.imagesize=[$img.width(), $img.height()]
		s.pos=(s.pos=="center")? [-(s.imagesize[0]/2-s.wrappersize[0]/2), -(s.imagesize[1]/2-s.wrappersize[1]/2)] : [center, center] //initial coords of image
		s.pos=[Math.floor(s.pos[0]), Math.floor(s.pos[1])]
		$img.css({position:'absolute', left:s.pos[0], top:s.pos[1]})
		s.dragcheck={h: (s.wrappersize[0]>s.imagesize[0])? false:true, v:(s.wrappersize[1]>s.imagesize[1])? false:true}
		if (s.dragcheck.h==false && s.dragcheck.v==false) //if image shouldn't be pannable (container larger than image)
			s.$pancontainer.css({cursor:'auto'})
		else
			this.dragimage($, $img, s)
	},

	dragimage:function($, $img, s){
		$img.mousedown(function(e){
			var imgoffset=$img.offset()
			s.pos=[parseInt($img.css('left')), parseInt($img.css('top'))]
			var xypos=[e.clientX, e.clientY]
			$img.bind('mousemove.dragstart', function(e){
				var pos=s.pos
				var dx=e.clientX-xypos[0] //distance to move horizontally
				var dy=e.clientY-xypos[1] //vertically
				if (s.dragcheck.h==true) //allow dragging horizontally?
					var newx=(dx>0)? Math.min(0, s.pos[0]+dx) : Math.max(-s.imagesize[0]+s.wrappersize[0], s.pos[0]+dx) //Set horizonal bonds. dx>0 indicates drag right versus left
				if (s.dragcheck.v==true) //allow dragging vertically?
					var newy=(dy>0)? Math.min(0, s.pos[1]+dy) : Math.max(-s.imagesize[1]+s.wrappersize[1], s.pos[1]+dy) //Set vertical bonds. dy>0 indicates drag downwards versus up
				$img.css({left:(typeof newx!="undefined")? newx : s.pos[0], top:(typeof newy!="undefined")? newy : s.pos[1]})
				return false //cancel default drag action
			})
			return false //cancel default drag action
		})
		$(document).bind('mouseup', function(e){
			$img.unbind('mousemove.dragstart')
		})
	}

}


jQuery.fn.imgmover=function(options){
	var $=jQuery
	return this.each(function(){ //return jQuery obj
		if (this.tagName!="IMG")
			return true //skip to next matched element
		var $imgref=$(this)
		if (parseInt(this.style.width)>0 && parseInt(this.style.height)>0) //if image has explicit CSS width/height defined
			ddimagepanner.init($, $imgref, options)
		else if (this.complete){ //account for IE not firing image.onload
			ddimagepanner.init($, $imgref, options)
		}
		else{
			$imgref.bind('load', function(){
				ddimagepanner.init($, $imgref, options)
			})
		}
	})
}


jQuery(document).ready(function($){ //By default look for DIVs with class="pancontainer"
	var $pancontainer=$('div.pancontainer')
	$pancontainer.each(function(){
		var $this=$(this).css({position:'relative', overflow:'hidden', cursor:'move'})
		var $img=$this.find('img:eq(0)') //image to pan
		var options={$pancontainer:$this, pos:$this.attr('data-orient'), wrappersize:[$this.width(), $this.height()]}
		$img.imgmover(options)
	})
})



</script>
        

 body中

 

 <form id="form1">
       
     <div class="pancontainer" data-orient="center" style="width:320px; height:480px;margin: 5px 300px 0px 400px;border: 1px solid #000;">
<img id="oImg" src="/img/c.jpg" alt="pic"/>
</div>

            
 </form>
 
分享到:
评论

相关推荐

    day21-Drag N Drop(拖放图片)

    用户可以把图片拖放到指定的区域,图片会立即在页面上显示出来。这个例子只是基础应用,实际项目中可能还需要考虑文件类型验证、错误处理、批量上传等问题。通过HTML、CSS和JavaScript的组合,你可以创建出更复杂、...

    HTML5拖放API实现自动生成相框功能

    图片元素`img`被绝对定位在相框内部,以适应不同大小的图片。 JavaScript部分负责处理拖放事件。当页面加载完成,`window.onload`事件触发,我们获取到了`.box2`和`.box`两个元素。`ondragover`事件阻止了默认的...

    可拖动的图片相框插件.zip

    内部的图片可以作为子元素嵌入,通过CSS布局使得图片填充或居中于相框内。此外,可能还应用了CSS3的过渡和变换效果,以实现平滑的动画效果。 除了基本的拖动功能,这个插件可能还包含了其他附加特性,如图片缩放、...

    jQuery鼠标双击或拖拽图片加入小框代码.zip

    图片选中通常可以通过改变边框颜色、添加阴影等视觉效果来实现。当图片被双击或拖动到指定框内时,需要更新其样式以表示已被选中。同时,框的大小和位置可能需要动态调整以适应不同大小的图片。 4. **jQuery的DOM...

    jQuery人物图片拼图游戏代码

    3. **CSS样式**:虽然未直接提供CSS文件,但可以假设在HTML内部或者通过外部引用有CSS代码,用于设置游戏界面的布局、颜色、边框等视觉效果。例如,每个拼图块可能有自己的CSS类,以便于选中、拖动或高亮。 4. **...

    拖动div 内部有滚动条

    3. **防止默认行为**:在`mousedown`事件处理函数中,使用`event.preventDefault()`防止默认的文本选择或图片拖放行为,确保只有 `div` 拖动生效。 4. **边界限制**:要确保 `div` 在拖动时不会超出父元素的边界,...

    手机相框PSD素材下载

    描述中的“手机相框PSD素材下载”进一步确认了这些资源是与手机相关的图像边框或框架,它们通常包括精心设计的元素,如阴影、质感、渐变和可能的交互元素,以便在手机屏幕上呈现出真实感。设计师可以利用这些素材...

    计算机软件-编程源码-Delphi7编程_界面设计_制作相框.zip

    在这个新类中,你需要重写Paint方法,用GDI(Graphics Device Interface)函数绘制边框和内部图像。 2. 使用TBitmap和TCanvas:可以先将图片加载到TBitmap对象,然后在TCanvas上绘制边框,最后将TBitmap作为背景...

    ckeditor插件工具

    2. 表格工具:增强表格的创建和编辑能力,支持合并单元格、设置边框、调整列宽等操作。 3. 链接管理:方便地插入、编辑和管理页面内外的链接,可以设置链接的目标、样式等属性。 4. 段落格式化:提供多种段落和文本...

    专题资料(2021-2022年)HTML5实现的矢量卡片式组织结构图.doc

    这可以通过使用TWaver的`registerImage`方法并指定相应的参数来完成,例如设置宽度、高度、边框颜色和填充色。接着,我们可以添加文本元素,如职位名称,通过调整`translate`属性将文本定位在矩形的右侧。 对于组织...

    css3Demo.zip

    - **拖放API**:通过CSS3可以美化拖放操作的视觉效果。 **二、CSS3的使用方法** 学习CSS3,你需要了解如何在HTML文档中引入样式表,可以使用`&lt;link&gt;`标签链接外部CSS文件,或者使用`&lt;style&gt;`标签在HTML文档内部...

    dialog popup window

    它定义了对话框的外观,包括边框、背景色、字体、按钮样式、遮罩层以及可能的动画效果。通过调整这些CSS属性,开发者可以定制对话框的视觉风格以符合网站的整体设计。 2. **index.html**:这是主HTML文件,通常包含...

    JasperReport动态生成报表

    这些工具允许开发者用拖放的方式创建报表布局,包含表格、图表、文本框、图片等多种元素。设计过程中,可以定义字段、变量、表达式,以及复杂的计算逻辑,使得报表内容丰富且动态。 **2. 数据源与数据处理** ...

    Delphi控件大全学习资料

    - `BevelInner`: 内部边框样式。 - `BevelOuter`: 外部边框样式。 - `BorderStyle`: 边框样式。 **示例说明**: TStaticText控件可以通过设置不同的边框属性来增强外观效果。 ##### 7. TControlBar 控件 - **...

    Delphi 函数汇总

    - **功能**:示例图片文件。 - **应用场景**:作为背景或在控件中显示。 ##### 38. **DrawCursor** - **功能**:绘制自定义光标。 - **应用场景**:在需要自定义光标样式时。 ##### 39. **DragCursor** - **...

    The Missing manual 原版(HTML5秘籍)cd

    - **拖放功能**:允许用户在网页内部或之间拖放元素,实现文件上传等交互。 - **Geolocation API**:获取用户地理位置信息,用于地图服务或个性化推荐。 - **WebRTC**:实现浏览器之间的音视频通信,无需插件。 ...

    一个非常功能强大的网页在线编辑器

    2. **图片处理**:用户可以直接在编辑器内上传图片,进行裁剪、旋转、添加边框等操作,甚至支持拖放上传,简化了网页设计中的图像管理工作。 3. **链接管理**:可以轻松添加内部和外部链接,支持一键复制和粘贴网址...

    从入门到精通HTML5——PDF——网盘链接

     15.2.3 使用readAsDataURL方法预览图片 286  15.2.4 使用readAsText方法读取文本文件 287  15.2.5 FileReader接口中的事件 288  15.3 拖放API 290  15.3.1 实现拖放的步骤 290  15.3.2 通过拖放显示欢迎...

Global site tag (gtag.js) - Google Analytics