利用HTML5 与CSS3 做的放大镜
利用HTML5 与CSS3 做的放大镜
- html结构
<div class="wrap">
<div class="move">
<ul class="pic">
<li><img src="img/iBannerText.png" /></li>
<li><img src="img/iBannerText2.png" /></li>
<li><img src="img/iBannerText3.png" /></li>
</ul>
<div class="zoomPic">
<div class="mask_pic">
<div class="pic">
</div>
<div class="mask">
</div>
</div>
</div>
</div>
<ul class="text">
<li><img src="img/iCourseTabText.png" /></li>
<li><img src="img/iCourseTabText2.png" /></li>
<li><img src="img/iCourseTabText3.png" /></li>
</ul>
<ul class="botton">
<li class="active"><span></span></li>
<li><span></span></li>
<li><span></span></li>
</ul>
</div> - 样式
body,
ul,
li {
padding: 0;
margin: 0;
} ul {
list-style: none;
} .wrap {
margin: 50px auto;
width: 365px;
position: relative;
border: 2px solid firebrick;
vertical-align: center;
} .wrap .pic {
position: relative;
height: 80px;
width: 100%;
} .wrap .pic li {
position: absolute;
top: -80px;
-webkit-transition: 0.5s;
transition: 0.5s;
opacity: 0;
} .wrap .text {
position: relative;
top: 0px;
left: 0;
height: 45px;
width: 100%;
margin-top: 30px;
} .wrap .text li {
position: absolute;
left: 365px;
-webkit-transition: 0.5s;
transition: 0.5s;
opacity: 0;
} .wrap .botton {
position: relative;
bottom: 0px;
height: 21px;
right: 0px;
width: 75px;
left: 280px;
} .wrap .botton li {
float: left;
height: 100%;
width: 20px;
margin: 0px 5px 0px 0px;
background-image: url(img/iCourseTabBtnShadow.png);
background-repeat: no-repeat;
} .wrap .botton span {
display: block;
height: 100%;
background-position: center 2px;
background-repeat: no-repeat;
background-image: url(img/iCourseIco.png);
-webkit-transform: scale(0);
transform: scale(0);
transition: 0.3s;
} .wrap .botton .active span {
-webkit-transform: scale(1);
transform: scale(1);
} .zoomPic {
position: absolute;
height: 172px;
width: 144px;
top: 0px;
left: -85px;
background-image: url(img/iZoom.png);
background-repeat: no-repeat;
overflow: hidden;
top: -13px;
-webkit-transform-origin: 6px 166px;
/*-webkit-transform: rotate(-30deg);*/
transition: 0.3s;
}
.zoomPic .mask_pic{
height: 96px;
width: 96px;
position: absolute;
left: 43px;
top: 3px;
background-color: #FFFFFF;
border-radius: 50%;
}
.zoomPic .pic {
position: absolute;
height: 96px;
width: 96px;
background-image: url(img/iBannerTextBig.png);
background-repeat: no-repeat;
left: 0px;
top: 0;
border-radius: 50%;
background-position: 40px 0px;
transition: 0.5s linear;
/*相对于 zoomPic 的旋转基点*/
-webkit-transform-origin:-36px 165px ;
/*-webkit-transform: rotate(30deg);*/
} .zoomPic .mask {
border-radius: 50%;
position: absolute;
left: 0px;
top: 0;
height: 96px;
width: 96px;
background-image: url(img/iZoomGlass.png);
background-repeat: no-repeat;
}
.move{
position: relative;
z-num: 5;
} 伟大的js来了
<script>
$(function() {
var btnList = $(".botton").find('li');
var picList = $('.pic').find('li');
var textList = $('.text').find('li');
var num = 0
var aSrc = ["img/iBannerTextBig.png", "img/iBannerTextBig2.png", "img/iBannerTextBig3.png"];
//初始化
picList.eq(0).css({
'top': 0,
'opacity': 1
});
textList.eq(0).css({
'left': 0,
'opacity': 1
}) btnList.bind('click', function() {
num = $(this).index();
$(btnList).removeClass("active");
$(this).addClass('active');
//先移动放大镜
toScale();
//toHidden(num);
//end(num); })
//初始化
zoomMove(0);
//放大镜
$('.move').bind('mousemove', function(ev) {
var picL = $(this).offset().left;
var picT = $(this).offset().top;
var w = $(this).width();
var H=$(this).height();
var evX = ev.clientX;
var evY = ev.clientY ;
if(evX>=picL && (picL + w>=evX) &&(picT+H >=evY)){
zoomMove(evX - picL);
}else{
//当鼠标 不在移动的范围时 回到原位置
setTimeout(function(){
zoomMove(0);
},500)
} }) function toScale(){
$('.zoomPic').css({
'webkitTransform':'rotate(-60deg)'
})
$('.zoomPic .pic').css({
'webkitTransform':'rotate(60deg)'
}) $('.zoomPic .pic').bind('webkitTransitionEnd',function(){
//切换背景图片
$(this).css({
'backgroundImage':'url('+aSrc[num]+')'
})
/*=============*/
$(this).unbind("webkitTransitionEnd");
toHidden(num);
})
}
function zoomMove(x) {
//放大镜中心得位置
var centerX = 96;
var xScale = (424/363).toFixed(2) ;
var picW = $('.mask_pic >.pic').width();
console.log(picW)
$('.mask_pic > .pic').css({
'backgroundPosition' : -xScale*x+picW/2+"px 0px"
}) $(".zoomPic").css({
'webkitTransition':'0s', /// 这里 记得去除 不然会影放大镜移动的速度
'left': x-centerX
})
}
//图片及文字的隐藏
function toHidden(){
picList.css({
"webkitTransition": '0.5s',
"top": -80,
"opacity": 0
});
textList.css({
"webkitTransition": "0.3s top ,0.3s 0.2s left, 0.3s opacity",
"top": 45,
'left': 365,
'opacity': 0
})
picList.bind('webkitTransitionEnd',picShow);
textList.bind('webkitTransitionEnd', textShow);
} function picShow(){
picList.unbind('webkitTransitionEnd');
$(picList[num]).css({
'top': 0,
'opacity': 1
})
//移除事件
$(picList[num]).unbind('webkitTransitionEnd');
}
function textShow(){
textList.unbind('webkitTransitionEnd');
$(textList[num]).css({
'top': 0,
'left': 0,
'opacity': 1
})
//放大镜还原的位置
$(textList[num]).bind('webkitTransitionEnd',toOrigin)
}
function toOrigin(){
$('.zoomPic').css({
"webkitTransition": '0.5s',
'webkitTransform':'rotate(0deg)'
})
$('.zoomPic .pic').css({
"webkitTransition": '0.5s',
'webkitTransform':'rotate(0deg)'
})
$(this).unbind('webkitTransitionEnd');
}
})
</script>这就是惊天的成果 — _ * 2016-11-05 23:29:52
利用HTML5 与CSS3 做的放大镜的更多相关文章
- 利用html5的localStorage做一个备忘录
实现一个便签功能,可以记录内容和写的时间,当网页从新载入,可以读取以前的记录. html文档 <!DOCTYPE html> <html> <head lang=&quo ...
- 利用HTML5和css3 选中图片上传到服务器,插件地址如下
https://yusi123.com/3349.html 分三步,需要将js文件和css文件拷贝到项目目录下,在需要选择的图片的文件中引入,然后将HTML代码复制 <!--选择图片模块star ...
- <HTML5和CSS3响应式WEB设计指南>译者序
"不是我不明白,这世界变化快."崔健的这首歌使用在互联网领域最合适不过.只短短数年的功夫,互联网的浪潮还没过去,移动互联网的时代已经来临.人们已经习惯将越来越多的时间花在各种移动设 ...
- 三款精美的html5及css3的源码插件
1.HTML5 3D爱心动画 晚来的七夕礼物 七夕情人节刚过,今天小编却在国外的网站上看到一个利用HTML5和CSS3制作的3D爱心动画,莫非老外也过七夕?当然小编还是将这款HTML5 3D爱心动画收 ...
- 微信浏览器是移动端的IE6?微信升级内核后Html5和CSS3兼容性总结
今年4月,自从微信浏览器X5 升级Blink内核之后,各前端社区一片高潮,仿佛看到了前端er,眼含热泪进而抱头痛头的说:终于可以不用兼容这"移动端的IE6 "了,可以早点回家了!! ...
- 《HTML5与CSS3实例教程》
<HTML5与CSS3实例教程> 基本信息 作者: (美)Brian P. Hogan 译者: 卢俊祥 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:97871153634 ...
- iOS Web应用开发:运用HTML5、CSS3与JavaScript
<iOS Web应用开发:运用HTML5.CSS3与JavaScript> 基本信息 原书名:Pro iOS web design and development:HTML5, CSS3, ...
- 一起感受HTML5和CSS3
Web设计师可以使用HTML4和CSS2.1完成一些很酷的东西.我们可以在不使用陈旧的基于table布局的基础上完成文档逻辑结构并创建内容丰富的网站.我们可以在不使用内联<font>和&l ...
- HTML5与CSS3知识点总结
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star 原文链接:https://blog.csdn.net/we ...
随机推荐
- L122
These plants have much of the same nutritional value that a real plant has. Search giant Google says ...
- 【SQL查询】查询的值为空时,给出默认值_NVL函数
格式为: NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值. 引申一下,此NVL的作 ...
- 转载:【菜鸟玩Linux开发】通过MySQL自动同步刷新Redis
转载: http://www.cnblogs.com/zhxilin/archive/2016/09/30/5923671.html
- docker下安装 Oracle11gR2
这是第二次安装,在第一次安装过程部分内容参考自如下: http://blog.sina.com.cn/s/blog_d840ff330102v4j0.html docker下oracle11g安装 h ...
- Attribute注解(用于判断权限)
一 Attribute原理: Attribute注解,是附加上方法.属性.类等上面的标签,可以通过方法的GetCustomAttribute获得粘贴的这个Attribute对象通过反射调用到粘贴到属 ...
- Mysql 关键字-保留字
ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE C ...
- X509 文件扩展名
编码 (也用于扩展名) .DER = 扩展名DER用于二进制DER编码的证书.这些证书也可以用CER或者CRT作为扩展名.比较合适的说法是“我有一个DER编码的证书”,而不是“我有一个DER证书”. ...
- maven依赖的添加
maven可是个管理jar依赖的好玩意,不用再关心导这个jar包那个jar包,这个jar包是谁家的,和谁有啥关系.有了maven,简简单单就搞定,下面以eclipse为例,在一个springboo ...
- Android 4学习(4):概述 - Using Resources
参考:<Professional Android 4 Application Development> Andorid中的资源包括用户自定义资源和系统自带资源,这两种资源既可以在代码中使用 ...
- leetcode643
double findMaxAverage(vector<int>& nums, int k) { double max = INT_MIN; int len = nums.siz ...