Archive for the ‘js’ tag
js中鼠标滚轮事件详解.
之前js 仿Photoshop鼠标滚轮控制输入框取值中已使用js对鼠标滚轮事件进行控制,滚轮事件其中考虑浏览器兼容性问题
附加事件
其中经我测试,IE/Opera属于同一类型,使用attachEvent即可添加滚轮事件。
/*IE注册事件*/
if(document.attachEvent){
document.attachEvent(’onmousewheel’,scrollFunc);
}
Firefox使用addEventListener添加滚轮事件
/*Firefox注册事件*/
if(document.addEventListener){
document.addEventListener(’DOMMouseScroll’,scrollFunc,false);
}
Safari与Chrome属于同一类型,可使用HTML DOM方式添加事件
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome
其中除Firefox外其余均可使用HTML DOM方式添加事件,因此添加事件使用以下方式
/*注册事件*/
if(document.addEventListener){
document.addEventListener(’DOMMouseScroll’,scrollFunc,false);
}//W3C
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome
detail与wheelDelta
判断滚轮向上或向下在浏览器中也要考虑兼容性,现在五大浏览器(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;两者只在取值上不一致,代表含义一致,detail与wheelDelta只各取两个值,detail只取±3,wheelDelta只取±120,其中正数表示为向上,负数表示向下。
<p><label for=”wheelDelta”> 滚动值:</label>(IE/Opera)<input type=”text” id=”wheelDelta” /></p>
<p><label for=”detail”> 滚动值:(Firefox)</label><input type=”text” id=”detail” /></p>
<script type=”text/javascript”>
var oTxt=document.getElementById(”txt”);
/***********************
* 函数:判断滚轮滚动方向
* 作者:walkingp
* 参数:event
* 返回:滚轮方向 1:向上 -1:向下
*************************/
var scrollFunc=function(e){
var direct=0;
e=e || window.event;
var t1=document.getElementById(”wheelDelta”);
var t2=document.getElementById(”detail”);
if(e.wheelDelta){//IE/Opera/Chrome
t1.value=e.wheelDelta;
}else if(e.detail){//Firefox
t2.value=e.detail;
}
ScrollText(direct);
}
/*注册事件*/
if(document.addEventListener){
document.addEventListener(’DOMMouseScroll’,scrollFunc,false);
}//W3C
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari
</script>
预览效果http://www.51obj.cn/demo/js/wheelDelta_detail.html
(部分图片见原文:http://www.51obj.cn/?p=637)
(以上内容部分内容参考了http://adomas.org/javascript-mouse-wheel/ )
Lazy Load, 延迟加载图片的 jQuery 插件
Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的.
在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担.
图片展示页面细节问题
最近把我们的图片查看页面优化了一下,原来点击切换图片都是直接链接,现在改为直接js 实现,实现方法很简单无非就是给大图的src赋值。
第一版本做好,没想到IE6下死活图片出不来。
最终发现两个小问题导致的。
1. <a href=”javascript:void(0)” onclick=”set(1);”>
改为
<a href=”javascript:void(0)” onclick=”set(1);return false;”>
2.
function showPreview(newSrc)
{
$(’#waitMessage’).show();
previewImage.onload = function() { hideWaitMessage();};
previewImage.src = newSrc;
$(’#bigHref’).attr(’href’,newSrc);
}
改成:
function showPreview(newSrc)
{
$(’#waitMessage’).show();
previewImage.onload = function() { hideWaitMessage();$(’#bigHref’).attr(’href’,newSrc);};
previewImage.src = newSrc;
}
最终效果:http://www.273.cn/sale/attachs.php?id=1379721&objectId=1377046
基于jquery的漂亮内容滚动展示
Website: http://webdeveloperplus.com/jquery/featured-content-…
Demo: http://demo.webdeveloperplus.com/featured-content-sl…
强大的Jquery图表绘制插件 —— jqPlot
jqPlot是一款基于jquery类库的图标绘制插件。通过jqPlot可以再网页中绘制线状、柱状、饼状等多种样式图表。而且,jqPlot具有插件可扩展性(Pluggability),你可以编写自己的图表样式。
在jqPlot主页的自我介绍中有这样一句话:“jqPlot is a plotting plugin for the jQuery Javascript framework.”。这里我并不认同他所说的jquery是一个javascript框架,jquery只能说是一个javascript库(javascript library),相信在jquery主页也找不到javascript framework的字眼。

jqPlot功能简介:
- 有多种图表样式可供选择
- 可以自定义日期轴线
- 可设置旋转轴文字
- 自动计算趋势线
- 工具条提示和高亮数据点
- 默认最优设置,非常易于使用
以上功能在jqPlot主页中的示例页面有很多直观的展示。这里是它详细使用文档。
js中this的总结
在面向对象编程语言中,对于this关键字我们是非常熟悉的。比如C++、C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要 理解了,用起来是非常方便和意义确定的。JavaScript也提供了这个this关键字,不过用起来就比经典OO语言中要”混乱”的多了。
下面就来看看,在JavaScript中各种this的使用方法有什么混乱之处?
1、在HTML元素事件属性中inline方式使用this关键字:
<div onclick=”
// 可以在里面使用this
“>division element</div>我们一般比较常用的方法是在此使用:javascirpt: EventHandler(this),这样的形式。不过这里其实可以写任何合法的JavaScript语句,要是高兴在此定义个类也可以(不过将会是个 内部类)。这里的原理是脚本引擎生成了一个div实例对象的匿名成员方法,而onclick指向这个方法。
2、用DOM方式在事件处理函数中使用this关键字:
Read the rest of this entry »
图片上的左右箭头js代码
jQuery性能优化指南
在jQuery中最快的选择器是ID选择器,因为它直接来自于JavaScript的getElementById()方法。
例如有一段HTML代码: Read the rest of this entry »



