js 实现显示局部方法的效果

网站上面有些时候一些小小的动作可能引起别人的瞩目,可能会增加别人对自己网站的兴趣,这是一个局部放大的小例子。先放上去,等到后期我有空了,再添加点东西把它变成一个插件。

<head>

<title></title>

<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>

<style type="text/css" >

#bigimg

{

position:absolute;

display:none;

overflow:hidden;

height:200px;

width:200px;

}

#smalldiv

{

position:absolute;

display:none;

}

</style>

<script type="text/javascript">

$(function () {

var count = 0;

$("#img").mousemove(function (e) {

var smalldiv = $("#smalldiv");

var ZoomSizeWidth = $("#img1").width() / $("#img_zoom").width(); //宽放大的倍数

var ZoomSizeHeight = $("#img1").height() / $("#img_zoom").height();//高放大的倍数

$("#bigimg").show();

smalldiv.show();

var mouseX = e.pageX + 5;

var mouseY = e.pageY + 5;

if (e.pageX < $(this).offset().left + smalldiv.width() / 2) {//当鼠标的X坐标小于图片与div遮罩层的x坐标和是divx=0;

divX = 0;

}

else if (e.pageX > $(this).offset().left + smalldiv.width() / 2 && e.pageX < $(this).offset().left + $(this).width() - smalldiv.width() / 2) {//鼠标的X坐标在图片内部并且小于图片最右边的X坐标

divX = e.pageX - $(this).offset().left - smalldiv.width() / 2;

}

else if (e.pageX > $(this).offset().left + $(this).width() - smalldiv.width() / 2) {//鼠标的X坐标大于图片的最右边的X坐标 (Y轴同理)

divX = $(this).width() - smalldiv.width();

}

if (e.pageY < $(this).offset().top + smalldiv.height() / 2) {

divY = 0;

}

else if (e.pageY > $(this).offset().top + smalldiv.height() / 2 && e.pageY < $(this).offset().top + $(this).height() - smalldiv.height() / 2) {

divY = e.pageY - $(this).offset().top - smalldiv.height() / 2;

}

else if (e.pageY > $(this).offset().top - smalldiv.height()) {

divY = $(this).height() - smalldiv.height();

}

$("#bigimg").css("top", mouseY).css("left", mouseX);

smalldiv.css("top", divY).css("left", divX);

smalldiv.appendTo("#img");

var tempX = smalldiv.offset().left - $(this).offset().left;//通过对大图的位置偏移来起到放大的效果

var tempY = smalldiv.offset().top - $(this).offset().top;

//让图片实现左边位移

$("#img1").css("top", -tempY * ZoomSizeHeight).css("left", -tempX * ZoomSizeWidth);

});

$("#img_zoom").mouseleave(function () {

$("#smalldiv").hide();

$("#bigimg").hide();

});

})

</script>

</head>

<body>

<div id="img" style=" width:200px; height:200px;margin-left:200px; position:relative; margin-top:30px"><img alt="图片" src="img/20120312171453_m8CJP.jpg" id="img_zoom" width="200" height="200"/></div>

<div id="bigimg" ><img   id="img1" src="img/20120312171453_m8CJP.jpg" width="800px" height="800px" style="position:absolute" /></div>

<div id="smalldiv" style="width:50px; background-color: rgba(0,0,0,0.5); height:50px; border:1px solid gray; "></div>

</body>

时间: 2024-11-05 19:54:36

js 实现显示局部方法的效果的相关文章

页面滚动显示或隐藏元素Headroom.js插件帮助你实现滚动效果

Headroom.js 是什么? Headroom.js 是一个轻量级.高性能的JS小工具(不依赖任何工具库!),它能在页面滚动时做出响应.此页面顶部的导航条就是一个鲜活的案例,当页面向下滚动时,导航条消失,当页面向上滚动时,导航条就出现了. Headroom.js 有什么用? 固定页头(导航条)可以方便用户在各个页面之间切换.但是这也会带来些问题…本文原创博客地址:http://www.cnblogs.com/unofficial官网地址:www.pushself.com) 大屏幕一般都是宽度

jQuery事件 mouseover方法与mouseout方法实现鼠标移进显示移出消失的效果 (css控制span标签)

<script> $(function(){ var text ; $(".pos span").each(function(){ text = $(this).text().trim(); if(text=="设为默认"){ $(this).css('display','none'); } }); $(".pos").mouseover(function(){ //鼠标移进显示效果 text = $(this).find('span

js实现页面局部弹窗打印

原文出自:http://www.haorooms.com/post/css3media 在网页中经常看到有打印功能,点击之后,只针对特定区域进行的打印.网上看了一下,大体上有2中实现方法,一种是用css @media控制,另一种是直接用js控制.下面分别来对其进行说明一下! 一.css控制网页局部打印 关于css控制打印,css @media 参考地址:http://www.haorooms.com/post/css3media(主要是介绍Media Query方法)也引进了css2的media

JS function的定义方法,及function对象的理解。

废话篇: 今天看到了javascript的原型链,各种指向,各种对象有木有,各种晕,各种混淆有木有.兼职是挑战个人脑经急转弯的极限啊.不过,最终这一难题还是被我攻克了,哇咔咔.现在就把这东西记下来,免得到时候又忘了就悲催了.... 正文篇: function的定义方法,及function对象的理解. 在我大js中秉承着一切都是对象的原则,不论是方法还是其他都不例外. 我们在使用java的时候经常要编写方法,这时候其用的关键字是function,而在js中我们在编写函数的时候也是用这个关键字,所以

利用10行js代码实现上下滚动公告效果

解决方案 1. HTML 先建一个div层作为公告显示区,里面包裹一个公告列表(ul); <div class="notice"> <ul> <li>第1条公告第1条公告第1条公告第1条公告第1条公告第1条公告</li> <li>第2条公告第2条公告第2条公告第2条公告第2条公告第2条公告</li> <li>第3条公告第3条公告第3条公告第3条公告第3条公告第3条公告</li> <li

iscroll.js的简单使用方法

参考链接:https://www.cnblogs.com/Renyi-Fan/tag/js%E6%8F%92%E4%BB%B6/default.html?page=2 目录 一.总结 一句话总结:Scroll是一个类,每个需要使用滚动功能的区域均要进行初始化. 二.iscroll.js的简单使用方法(总结) 回到顶部 >  一.总结(点击显示或隐藏总结内容) 一句话总结:Scroll是一个类,每个需要使用滚动功能的区域均要进行初始化. 最佳的HTML结构如下: <div id="wr

两种 js下载文件的方法(转)

function DownURL(strRemoteURL, strLocalURL){ try{ var xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP"); xmlHTTP.open("Get", strRemoteURL, false); xmlHTTP.send(); var adodbStream = new ActiveXObject("ADODB.Stream"); adodbStrea

html使用css让文字超出部分用省略号三个点显示的方法案例

html使用css让文字超出部分用省略号三个点显示的方法: 我正确使用的就是下面的代码,li里面是a标记.在IE和google中使用是正常的,火狐不知道,我也不在意,等你来测 li{ display:block;overflow:hidden;word-break:keep-all;white-space:nowrap;text-overflow:ellipsis; } 直接拿这个css样式去用吧,编程嘛,解决就好,不用看下面的了. 语法: text-overflow : clip | elli

我的Android进阶之旅------&gt; Android在TextView中显示图片方法

面试题:请说出Android SDK支持哪些方式显示富文本信息(不同颜色.大小.并包含图像的文本信息),并简要说明实现方法. 答案:Android SDK支持如下显示富文本信息的方式. 1.使用TextView组件可以显示富文本信息.在TextView组件中可以使用富文本标签来显示富文本信息,这种标签类似于HTML标签,但比HTML标签简单,支持有限的几种显示富文本的方式.如<font>标签用于设置字体和颜色,<b>用于设置粗体.包含这些标签的文本不能直接作为TextView.se