开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4172|回复: 9
收起左侧

[技术专题] YY滑动验证码完整图分析

[复制链接]
结帖率:100% (7/7)
发表于 2015-2-27 14:23:56 | 显示全部楼层 |阅读模式   广东省深圳市
  开学了。在论坛也没多大贡献。。就发这个吧。


- - 我就来发发我理解到的。。 这段代码是实现显示完整图的核心代码。。
   f = function(d, f) {
        d是一张没有经过处理的完整图片。 F是一张没有经过处理的 而且缺了一块的图片。
        var k = c(), ’ C可以在这个函数上面找到。。无非就是返回52长度的数组。。固定的。。
        l = document.createElement("div");  ‘就是新建一个DIV图层  
        l.className = "gt_ads_fullbg_slice", ‘就是更改DIV图层的名称   
        l.style.backgroundImage = "url(" + d + ")";‘就是更改DIV图层的背景图片为上方未经处理的完整图。
        var m = document.createElement("div");‘就是新建一个DIV图层  
        m.className = "gt_ads_cut_slice", ‘就是更改DIV图层的名称
        m.style.backgroundImage = "url(" + f + ")";‘就是更改DIV图层的背景图片为上方未经处理的完整图。
‘上面的。。 其实也没多大用处  下面才是重点  看懂了  你自然就能有思路去搞了。。


FOR  循环语句。 K 上面  说了。。一个52长度的数组。。  所以循环52次。
p = "-" + (k[q] % 26 * 12 + 1) + "px " + (k[q] > 25 ? -i.height / 2 : 0) + "px"   这个就是拼图右偏移和 下偏移的值。。但是前面有个减号。就成了向左偏移。向上偏移。  至于里面的值  你就得自己算了。。   -I是图片的高度
举个例子 p = -157px 58px  那么拼图的位置就向左边移动157 向上移动58 然后第一张图片的出现在左上角的地方。  然后一直循环  每次都是不相同的坐标 。之后就能显示一张完整的拼图了。。。
基本到这里。。下面就不用说了。。。     至于你怎么合并 怎么分割就是你的事了。。
        for (var n, o, p, q = 0,
        r = k.length; r > q; q++) p = "-" + (k[q] % 26 * 12 + 1) + "px " + (k[q] > 25 ? -i.height / 2 : 0) + "px",
        n = l.cloneNode(),
        n.style.backgroundPosition = p,
        a.push(n),
        h.appendChild(n),
        o = m.cloneNode(),
        o.style.backgroundPosition = p,
        b.push(o),
        j.appendChild(o);
        e()
    }
到这了。。源码就不发了。。。

评分

参与人数 4好评 +4 精币 +12 收起 理由
Mamy + 1 感谢分享,很给力!~
梦寻简单 + 1 + 2 感谢分享,很给力!~
半夏时光 + 1 + 5 感谢分享,很给力!~
Hwak + 1 + 5 赞 大神

查看全部评分


结帖率:50% (1/2)
发表于 2018-6-13 19:55:39 | 显示全部楼层   新疆维吾尔自治区伊犁哈萨克自治州
看不懂·只知道这是JS代码
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
发表于 2015-3-14 19:12:37 | 显示全部楼层   河南省郑州市
感谢大神分享
回复 支持 反对

使用道具 举报

结帖率:82% (28/34)
发表于 2015-3-14 18:26:11 | 显示全部楼层   湖南省永州市
唉 看不懂·只知道这是JS代码
回复 支持 反对

使用道具 举报

结帖率:25% (1/4)
发表于 2015-3-11 15:38:24 | 显示全部楼层   河南省新乡市
ApOL 发表于 2015-2-27 14:59
还原图片的源码

能否在完整点。把拖动的也给发过来行吗?
回复 支持 反对

使用道具 举报

发表于 2015-2-27 14:59:41 | 显示全部楼层   江苏省苏州市
还原图片的源码{:soso_e103:}

图片还原.rar

135.12 KB, 下载次数: 136, 下载积分: 精币 -2 枚

点评

感谢分享~~   韩国  发表于 2015-2-27 19:44

评分

参与人数 2好评 +1 精币 +4 收起 理由
Mamy + 2 感谢分享,很给力!~
Invisible + 1 + 2 感谢分享~~

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:100% (20/20)
发表于 2015-2-27 14:53:15 | 显示全部楼层   山东省青岛市

  开学了。在论坛也没多大贡献。。就发这个吧。


- - 我就来发发我理解到的。。 这段代码是实现显示完整图的核心代码。。
   f = function(d, f) {
        d是一张没有经过处理的完整图片。 F是一张没有经过处理的 而且缺了一块的图片。
        var k = c(), ’ C可以在这个函数上面找到。。无非就是返回52长度的数组。。固定的。。
        l = document.createElement("div");  ‘就是新建一个DIV图层  
        l.className = "gt_ads_fullbg_slice", ‘就是更改DIV图层的名称   
        l.style.backgroundImage = "url(" + d + ")";‘就是更改DIV图层的背景图片为上方未经处理的完整图。
        var m = document.createElement("div");‘就是新建一个DIV图层  
        m.className = "gt_ads_cut_slice", ‘就是更改DIV图层的名称
        m.style.backgroundImage = "url(" + f + ")";‘就是更改DIV图层的背景图片为上方未经处理的完整图。
‘上面的。。 其实也没多大用处  下面才是重点  看懂了  你自然就能有思路去搞了。。


FOR  循环语句。 K 上面  说了。。一个52长度的数组。。  所以循环52次。
p = "-" + (k[q] % 26 * 12 + 1) + "px " + (k[q] > 25 ? -i.height / 2 : 0) + "px"   这个就是拼图右偏移和 下偏移的值。。但是前面有个减号。就成了向左偏移。向上偏移。  至于里面的值  你就得自己算了。。   -I是图片的高度
举个例子 p = -157px 58px  那么拼图的位置就向左边移动157 向上移动58 然后第一张图片的出现在左上角的地方。  然后一直循环  每次都是不相同的坐标 。之后就能显示一张完整的拼图了。。。
基本到这里。。下面就不用说了。。。     至于你怎么合并 怎么分割就是你的事了。。
        for (var n, o, p, q = 0,
        r = k.length; r > q; q++) p = "-" + (k[q] % 26 * 12 + 1) + "px " + (k[q] > 25 ? -i.height / 2 : 0) + "px",
        n = l.cloneNode(),
        n.style.backgroundPosition = p,
        a.push(n),
        h.appendChild(n),
        o = m.cloneNode(),
        o.style.backgroundPosition = p,
        b.push(o),
        j.appendChild(o);
        e()
    }
到这了。。源码就不发了。。。
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 20 天

发表于 2015-2-27 14:25:49 | 显示全部楼层   重庆市重庆市
好顶支持
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表