🦄 2024 独立开发者训练营,一起创业!查看介绍 / 立即报名(剩余10个优惠名额) →

宁皓网用到的几个 Javascript 配方

根据页面窗口自动缩放的背景图片

在宁皓网首页的展示区域,有一个大背景图片,这个背景图片会根据页面窗口的宽度自动缩放。这里用到是 jQuery 的 Anystretch 插件。下载这个插件并把它加载到页面中,同时你的页面中还需要使用到 jQuery。

jQuery Anystretch:
https://github.com/danmillar/jquery-anystretch

调用的方法:
$('#showcase').anystretch("files/images/show-02.jpg");

解释:
找到页面中带有 #showcase 这个 id 的元素。然后用 Anystretch 为这个元素添加一个可以自动缩放的背景图片,图片的位置在 files/images/show-02.jpg。

修正 IOS 设备的缩放错误

在使用 iPad 浏览网页时,从垂直状态转到水平状态时候页面的显示比例会有点问题,下面这小段 Javascript 可以解决这个问题。

/* Orientation Scale Bug Fix for iOS
from: http://adactio.com/journal/4470/
-------------------------------------------------------------- */
if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i)) {
var viewportmeta = document.querySelector('meta[name="viewport"]');
if (viewportmeta) {
viewportmeta.content = 'width=device-width, minimum-scale=1.0, maximum-scale=1.0';
document.body.addEventListener('gesturestart', function () {
viewportmeta.content = 'width=device-width, minimum-scale=0.25, maximum-scale=1.6';
}, false);
}
};

固定的页脚

如果你的页面的主体内容很少,那么页脚部分的下面会留出一大片空白,如果你想让页脚永远在浏览窗口的最底部,可以使用下面这段 Javasciprt 代码。

       pushtobottom();
        $(window).scroll(pushtobottom).resize(pushtobottom);
        function pushtobottom() {
            var docHeight = $(document.body).height() - $("#push-to-bottom").height();
            if (docHeight < $(window).height()) {
                var diff = $(window).height() - docHeight;
                if (!$("#push-to-bottom").length > 0) {
                    $("#bottom").before('
'); } $("#push-to-bottom").height(diff); } }

Tip #bootom是你想要固定显示在页面窗口底部的元素上的 ID。

判断是否为 iPad

if((navigator.userAgent.match(/iPad/i)))
{$('body').addClass('ipad')};

判断一下用户使用的上网设备是否为 iPad ,如果是,那么在页面的 <body> 标签中添加一个.ipad 类。这样我们可以利用这个 iPad 类重新为 iPad 定义一些样式。

宁皓网的视频页面使用了这个小技巧,因为我想让视频的播放器在 iPad 的水平状态下时小一些,这样用户不用滚动屏幕就可以显示出播放器下面的向上和向下的控制按钮。

二维码地址

宁皓网的课程与视频页面的右下角会有一个二维码,这个二维码里包含的就是当前页面的地址信息。比如,你正在用电脑浏览这些网页,突然又想在你的平板或者手机上浏览,你可以用手机或平板上的二维码扫描软件扫一下页面上出现的二维码,这样可以直接打开这个页面。

var currentURL = window.location.hostname + window.location.pathname;
var qrimgURL = "http://chart.googleapis.com/chart?cht=qr&chl=http://" + currentURL + "&chs=120x120";
var qrimg = ("<img class='img-rounded' src='" + qrimgURL + "' style='float:left'> ");
$(".qrimg").append(qrimg);

解释:第一行代码可以获得当前页面的地址,第二行使用了 Google Chart API,生成包含当前页面地址内容的二维码,二维码图片的大小是120 x 120 像素。第三行代码就把生成的二维码图片的地址用一个<img>标签表示出来。第四行代码可以把生成的二维码图片放在页面中带有.qrimg类的元素中显示出来。

工作

评论

受教了!有个问题,皓哥,我想作弊,判断useragent是否为baidu蜘蛛,如果是的话,为某个ID添加类。然后设置这个类的display:none;想问问皓哥,这样隐藏是怎么个流程,百度能发现这段y隐藏的内容吗?是不是自欺欺人?

Don't !

皓哥,我按照你说的那个二维码制作方式,为什么没有出来啊????

仔细检查一下再,第四行代码:$(".qrimg").append(qrimg); 理解一下这行代码的作用,意思就是找到页面中包含 .qrimg 类的元素,然后把二维码图片放在里面。另外,你要确定你的网页里加载使用了 jQuery 。

已经购买了商业版的,希望老师以后多多指教,谢谢!!!

感谢!You're my angel !

皓哥,我试了一下你的第一个背景全屏的代码,我的背景是一个长条采取的纵向平铺形成的,这个代码可以平铺背景吗?

皓哥,固定页脚这个,除了#bottom这个id,需不需要在page.tpl.php上再添加一块#push-to-bottom的区域?我直接引用了这个js, 设置了#bottom,没有反应啊。

现在可以试一下用 Flexbox 或者 Grid 这种 CSS 方法布局,这样布局更灵活一些。

终于解决了!谢谢皓哥!

客气啦:)

好的,谢谢皓哥!我研究一下

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点