JavaScript教程:图片切割效果

2016-02-20 00:52 65 1 收藏

今天图老师小编给大家介绍下JavaScript教程:图片切割效果,平时喜欢JavaScript教程:图片切割效果的朋友赶紧收藏起来吧!记得点赞哦~

【 tulaoshi.com - Web开发 】

自上一个版本的图片切割效果出来后,虽然也经常看到框架开发这个如何如何容易之类的评论,但也受到很多人的肯定,小弟在此感谢大家的支持。
上一个版本由于是初次接触这类效果,而且是三个大功能一起开发,能力所限,所以仅仅是实现了效果就完成了。
近来我把其中的 拖放效果 和 缩放效果 单独出来研究,经过整理和完善,再套进切割效果,个人感觉效果已经不错了。
要说明的是这个只是一个效果,并不是真正的切割图片,要获取真正的切割图片请参考 图片切割系统 。

效果预览请看这里

完整实例下载

代码太多贴不出来,只好给个效果图:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

程序说明

这个效果主要分三个部分:层的拖放、层的缩放、图片切割(包括预览)。
其中 层的拖放 和 层的缩放 我已经在其他两篇文章中有详细说明,这里就说说图片切割这部分吧。

图片切割

关于图片切割的设计,有三个方法:

把图片设为背景图,通过设置背景图的位置来实现,但这样的缺点是只能按图片的正常比例实现,不够灵活; 把图片放到切割对象里面,通过设置图片的top和left实现,这个方法是可行,但下面有更简单的方法实现; 通过设置图片的clip来实现。

这里介绍方法3的实现方法,这个方法是从当年珍藏的代码中看到的,先说说clip:
clip的作用是检索或设置对象的可视区域。可视区域外的部分是透明的。
依据上-右-下-左的顺序提供自对象左上角为(0,0)坐标计算的四个偏移数值来剪切。
例如:

div { position:absolute; width:60px; height:60px; clip:rect(0 20 50 10); }

注意position:absolute的设置是必须的(详细看手册)。

下面说说具体实现原理

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

首先需要一个容器(_Container),容器里面会插入三个层:

底图层(_layBase):那个半透明的图片; 切割层(_layCropper):正常显示的那个部分; 控制层(_layHandle):就是控制显示的那个部分。

其中为了底图层和切割层是程序自动创建的图片,控制层是自己定义的层(程序中是一个div)。
底图层和切割层必须完全重合,程序中把这两个层都绝对定位到了左上角:

this._layBase.style.top = this._layBase.style.left = this._layCropper.style.top = this._layCropper.style.left = 0;

层叠顺序也要设置一下保证各层顺序。

来源:https://www.tulaoshi.com/n/20160220/1632702.html

延伸阅读
标签: PS PS基础
先看看效果图 步骤1 一个黑色的背景和一些交错的白色文字用粗体字在画布像下面的图片中创建一个新的800×600文件。 步骤2 我们使用这个钻石板纹理作为我们的背景。将您的文档中所选择的纹理放置到底层。 步骤3 下一步是使我们的文字看起来像是被切割出来的钻石板。将下列设置应用于文本图层的混合选项。 ...
标签: Web开发
可悲的是,对CSS3和HTML5的不是标准(但)这些天(何时会永远是什么?)。由于此演示使用对CSS3,并不是所有的浏览器都可以全面兼容。正因为如此,它只能作为他们的支持通过- WebKit中字头的变换和箱阴影对CSS3属性仅浏览器在苹果Safari和谷歌浏览器。 。所以,现在,这只是为了好玩 – 其它浏览器将显示拍立得,但不会有整洁的阴影,...
标签: Web开发
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=gb2312" / title仿Flash广告图片...
标签: Web开发
本来想做一个集合浮动定位和鼠标跟随的tooltips效果,但发现定位和鼠标跟随在一些关键的地方还是不同的,还是分开来吧。 这个效果本身难度不大,主要在程序结构和扩展中下了些功夫,务求用起来更方便,能用在更多的地方。 程序特点 同一个提示框用在多个触发元素时,只需一个实例; 显示和隐藏分别有点击方式和触发方式选择; 能设置...
标签: Web开发
缓动,学名为Tween,缓冲移动的简称。要想页面内容切换起来舒服,就使用淡入淡出特效,要想让页面元素动起来自然,就要使用缓动效果。这两个混合起来,可以衍生多种特效的。感谢Flash开发人员为我们做了那么多先行研究,我们直接把它们拆出来装在各种菜单与相册中。我们先从最简单的东西做起,加速与减速。 既然是缓动,它就一定涉及以下概...

经验教程

745

收藏

86
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部