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>
分享到:
相关推荐
用户可以把图片拖放到指定的区域,图片会立即在页面上显示出来。这个例子只是基础应用,实际项目中可能还需要考虑文件类型验证、错误处理、批量上传等问题。通过HTML、CSS和JavaScript的组合,你可以创建出更复杂、...
图片元素`img`被绝对定位在相框内部,以适应不同大小的图片。 JavaScript部分负责处理拖放事件。当页面加载完成,`window.onload`事件触发,我们获取到了`.box2`和`.box`两个元素。`ondragover`事件阻止了默认的...
内部的图片可以作为子元素嵌入,通过CSS布局使得图片填充或居中于相框内。此外,可能还应用了CSS3的过渡和变换效果,以实现平滑的动画效果。 除了基本的拖动功能,这个插件可能还包含了其他附加特性,如图片缩放、...
图片选中通常可以通过改变边框颜色、添加阴影等视觉效果来实现。当图片被双击或拖动到指定框内时,需要更新其样式以表示已被选中。同时,框的大小和位置可能需要动态调整以适应不同大小的图片。 4. **jQuery的DOM...
3. **CSS样式**:虽然未直接提供CSS文件,但可以假设在HTML内部或者通过外部引用有CSS代码,用于设置游戏界面的布局、颜色、边框等视觉效果。例如,每个拼图块可能有自己的CSS类,以便于选中、拖动或高亮。 4. **...
3. **防止默认行为**:在`mousedown`事件处理函数中,使用`event.preventDefault()`防止默认的文本选择或图片拖放行为,确保只有 `div` 拖动生效。 4. **边界限制**:要确保 `div` 在拖动时不会超出父元素的边界,...
描述中的“手机相框PSD素材下载”进一步确认了这些资源是与手机相关的图像边框或框架,它们通常包括精心设计的元素,如阴影、质感、渐变和可能的交互元素,以便在手机屏幕上呈现出真实感。设计师可以利用这些素材...
在这个新类中,你需要重写Paint方法,用GDI(Graphics Device Interface)函数绘制边框和内部图像。 2. 使用TBitmap和TCanvas:可以先将图片加载到TBitmap对象,然后在TCanvas上绘制边框,最后将TBitmap作为背景...
2. 表格工具:增强表格的创建和编辑能力,支持合并单元格、设置边框、调整列宽等操作。 3. 链接管理:方便地插入、编辑和管理页面内外的链接,可以设置链接的目标、样式等属性。 4. 段落格式化:提供多种段落和文本...
这可以通过使用TWaver的`registerImage`方法并指定相应的参数来完成,例如设置宽度、高度、边框颜色和填充色。接着,我们可以添加文本元素,如职位名称,通过调整`translate`属性将文本定位在矩形的右侧。 对于组织...
- **拖放API**:通过CSS3可以美化拖放操作的视觉效果。 **二、CSS3的使用方法** 学习CSS3,你需要了解如何在HTML文档中引入样式表,可以使用`<link>`标签链接外部CSS文件,或者使用`<style>`标签在HTML文档内部...
它定义了对话框的外观,包括边框、背景色、字体、按钮样式、遮罩层以及可能的动画效果。通过调整这些CSS属性,开发者可以定制对话框的视觉风格以符合网站的整体设计。 2. **index.html**:这是主HTML文件,通常包含...
这些工具允许开发者用拖放的方式创建报表布局,包含表格、图表、文本框、图片等多种元素。设计过程中,可以定义字段、变量、表达式,以及复杂的计算逻辑,使得报表内容丰富且动态。 **2. 数据源与数据处理** ...
- `BevelInner`: 内部边框样式。 - `BevelOuter`: 外部边框样式。 - `BorderStyle`: 边框样式。 **示例说明**: TStaticText控件可以通过设置不同的边框属性来增强外观效果。 ##### 7. TControlBar 控件 - **...
- **功能**:示例图片文件。 - **应用场景**:作为背景或在控件中显示。 ##### 38. **DrawCursor** - **功能**:绘制自定义光标。 - **应用场景**:在需要自定义光标样式时。 ##### 39. **DragCursor** - **...
- **拖放功能**:允许用户在网页内部或之间拖放元素,实现文件上传等交互。 - **Geolocation API**:获取用户地理位置信息,用于地图服务或个性化推荐。 - **WebRTC**:实现浏览器之间的音视频通信,无需插件。 ...
2. **图片处理**:用户可以直接在编辑器内上传图片,进行裁剪、旋转、添加边框等操作,甚至支持拖放上传,简化了网页设计中的图像管理工作。 3. **链接管理**:可以轻松添加内部和外部链接,支持一键复制和粘贴网址...
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 通过拖放显示欢迎...