虽然IE9开始支持了canvas接口,jQuery下拉收缩特效

2019-08-03 作者:小鱼儿主页高手论坛   |   浏览(142)

思路
HTML5的canvas提供了getImageData接口来获取canvas中的数据,所以我们能够先用drawImage接口将图片画在canvas上然后再通过getImageData得到图片数据矩阵。

大家在写div css的时候经常会用到弹出层,由于IE6的bug,所以当使用多个标签重复写弹出层的时候会遇到后面的层压在了弹出层的上面,这种问题在火狐浏览器下可以用z-index来解决,但是在IE6下面是不起作用的,下面的代码给大家提供了一种此类问题的解决办法,原理如下:用Jquery给弹出层的z轴依次增加高度.代码很简单,效果很显著,吼吼!

jQuery下拉收缩特效

JS模拟抽奖效果

需要注意,虽然IE9开始支持了canvas接口,但是其getImageData获取的数据并不是以标准的TypedArray方式存储的,或者说IE9没有提供对WebGL Native binary data的支持,所以如果需要对IE9支持,下面的矩阵需要用Array的方式保存。虽然IE9以下版本(例如IE8)有开源项目explorercanvas提供canvas支持,但很可惜G_vmlCanvasManager并没有提供位图数据获取接口。TypedArray的相关内容可以参考HTML5的新数组

复制代码 代码如下:

演示不了 请刷新下

点击试试

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

Result

基本矩阵
在图像处理中,矩阵计算是非常重要的内容,所以我们首先来建立一个矩阵模型。
通过getImageData接口获取的ImageData虽然具有类似矩阵的结构,但是他的结构是不可变的,不适合扩展,所以我们选择在Javascript中自建一个矩阵。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ";
<html xmlns=";
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>弹出层问题的解决办法</title>
<style>
.box { width:800px; margin:10px auto; background:#f1f1f1; z-index:0; padding:10px;display:inline-table; text-align:center;}
.box ul li { width:150px; height:150px; float:left; border:solid 1px #ccc; background:#CCFF99; margin:10px; position:relative; list-style:none;}
.box ul li .layer { position:absolute; left:150px; top:0; width:120px; height:100px; background:#000; color:#fff; z-index:99999;}
</style>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
</head>
<body>
<div class="box">
<ul id="boxcotent">
<li><a href="#">测试新闻标题一</a>
<div class="layer" style=" display:none;">
<a href="#">这里显示弹出层</a>
</div>
</li>
<li><a href="#">测试新闻标题一</a>
<div class="layer" style=" display:none;">
<a href="#">这里显示弹出层</a>
</div>
</li>
<li><a href="#">测试新闻标题一</a>
<div class="layer" style=" display:none;">
<a href="#">这里显示弹出层</a>
</div>
</li>
<li><a href="#">测试新闻标题一</a>
<div class="layer" style=" display:none;">
<a href="#">这里显示弹出层</a>
</div>
</li>
<li><a href="#">测试新闻标题一</a>
<div class="layer" style=" display:none;">
<a href="#">这里显示弹出层</a>
</div>
</li>
<li><a href="#">测试新闻标题一</a>
<div class="layer" style=" display:none;">
<a href="#">这里显示弹出层</a>
</div>
</li>
<li><a href="#">测试新闻标题一</a>
<div class="layer" style=" display:none;">
<a href="#">这里显示弹出层</a>
</div>
</li>
</ul>
</div>
<script type="text/javascript">
for(var i = 0; i < $(".box li").length;i ){
var j = 10000-i
$(".box li").eq(i).css("z-index",j);
}
$("#boxcotent li").hover(function(){
$(this).children(".layer").show();},function(){$(this).children(".layer").hide();}
);
$("#boxcotent li").hover(function(){
$(this).addClass("s");},function(){$(this).removeClass("s");}
);
</script>
</body>
</html>
以上JS代码需要引入jquery-1.3.2.min.js文件
关键JS代码
for(var i = 0; i < $(".box li").length;i ){
var j = 10000-i
$(".box li").eq(i).css("z-index",j);
}

您可能感兴趣的文章:

  • jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
  • jquery控制页面的展开和隐藏实现方法(推荐)
  • jQuery实现DIV层收缩展开的方法
  • jquery实现可点击伸缩与展开的菜单效果代码
  • jquery实现点击查看更多内容控制段落文字展开折叠效果
  • jQuery实现文本展开收缩特效
  • jQuery实现表格展开与折叠的方法
  • jquery实现先淡出再折叠收起的动画效果
  • jQuery使用slideUp方法实现控制元素缓慢收起
  • jQuery实现的页面详情展开收起功能示例

[Ctrl A 全选 注:如需引入外部Js需刷新才能执行]

复制代码 代码如下:

您可能感兴趣的文章:

  • javascript鼠标滑过显示二级菜单特效
  • JS实现鼠标滑过链接改变网页背景颜色的方法
  • JS实现鼠标滑过折叠与展开菜单效果代码
  • JavaScript实现鼠标滑过图片变换效果的方法
  • js鼠标滑过图片震动特效的方法
  • 当鼠标滑过文本框自动选中输入框内容的JS代码分享
  • JS鼠标滑过图片时切换图片实现思路
  • JS实现表单中checkbox对勾选中增加边框显示效果
  • jsp中使用frameset框架 边框固定不让更改边框的大小
  • JS实现鼠标滑过显示边框的菜单效果

您可能感兴趣的文章:

  • js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
  • js轮盘抽奖实例分析
  • js抽奖实现随机抽奖代码效果
  • js实现大转盘抽奖游戏实例
  • js简单抽奖代码
  • js实现简单随机抽奖的方法
  • jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
  • javascript 随机抽奖程序代码
  • 原生JS实现九宫格抽奖效果
  • JS实现方形抽奖效果

function Mat(__row, __col, __data, __buffer){
this.row = __row || 0;
this.col = __col || 0;
this.channel = 4;
this.buffer = __buffer || new ArrayBuffer(__row * __col * 4);
this.data = new Uint8ClampedArray(this.buffer);
__data && this.data.set(__data);
this.bytes = 1;
this.type = "CV_RGBA";
}

row - 代表矩阵的行数
col - 代表矩阵的列数
channel - 代表通道数量,因为通过getImageData获取的图片数据是以RGBA色彩空间进行描述的,即有Red(红)、Green(绿)、Blue(蓝)和Alpha(不透明度)四个通道。
buffer - 数据所用的ArrayBuffer引用。
data - 图片的Uint8ClampedArray数组数据。
bytes - 每个数据单位占用字节,因为是uint8数据类型,所以占用字节数为1。
type - 数据类型是CV_RGBA。
图片数据转成矩阵的方法

复制代码 代码如下:

本文由小鱼儿玄机30码发布于小鱼儿主页高手论坛,转载请注明出处:虽然IE9开始支持了canvas接口,jQuery下拉收缩特效

关键词: 小鱼儿玄机30码