Hexo瞎折腾系列(2) - 添加背景图片轮播

动态背景图片插件jquery-backstretch

jquery-backstretch是一款简单的jQuery插件,可以用来设置动态的背景图片,以下是官方网站的介绍。

A simple jQuery plugin that allows you to add a dynamically-resized, slideshow-capable background image to any page or element.

可以直接在页面中引入该插件的cdn来调用函数,也可以直接下载下来使用,这是官方地址

jquery-backstretch的使用方法

引入该插件的cdn

打开themes\next\layout\_custom\custom-foot.swig,引入该背景图片插件的cdn:

{#
Custom foot in body, Can add script here.
#}
<!-- 图片轮播js文件cdn -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-backstretch/2.0.4/jquery.backstretch.min.js"></script>

<!-- 自定义的js文件 -->
<script type="text/javascript" src="/js/src/custom.js"></script>

需要注意的是,我们要引入的插件cdn,都需要在自定义的js文件custom.js之前引入才行!否则,插件会在访问页面时无法生效,可以在浏览器的控制台看到报错。

调用backstretch函数

themes\next\source\js\src\custom.js中添加如下代码:

/* 轮播背景图片 */
$(function () {
    $.backstretch([
          "/images/background/saber1.jpg",
          "/images/background/saber2.jpg",
          "/images/background/bg1.jpg"
    ], { duration: 60000, fade: 1500 });
});

这里可以随意添加你想要轮播的图片,但要确保图片路径是正确的,比如我的背景图片就存放在站点根目录下的images/background/目录下。

然后duration指的是轮换图片的时间,单位是毫秒,也就是说这里的代码表示一分钟就轮换到下一张图片;

fade指的是轮换图片时会有个渐进渐出的动作,而这个过程需要花费的时间单位也是毫秒,如果不加上这个参数,就表示离开轮换成下一张图片。

注意这里的$.backstretch指的是对整个页面设置背景图片,我们也可以专门给某个元素设置背景图片,如下:

$(function () {
    $(".saber1").backstretch(["/images/background/saber1.jpg"]);
    $(".saber2").backstretch(["/images/background/saber2.jpg"]);
});

如果只有一张图片,就没必要设置durationfade参数了。

为背景图片设置样式

虽然我们设置好了背景图片,但如果页面的许多元素是不透明的,背景图片可能并不能很好地被看见,所以我们可以对背景图片和其他的页面元素进行设置样式。

首先为背景图片设置透明度,因为有的图片颜色比较深厚,而页面多为白色,然后造成喧宾夺主的感觉。

file:themes\next\source\css\_custom\custom.styl

/* 背景图片透明度 */
.backstretch {
    opacity: .75;
}

接下来设置页面元素透明度,需要注意的是,如果我们在主题配置文件中启用了搜索功能,那么就不能简单粗暴地直接将整个页面都设置透明度,这会导致搜索框失效,无法正常使用。原因是因为搜索框是通过jQuery临时添加的,如果整个页面都设置了透明度,会导致搜索框的z-index失效而无法触发点击事件。

我在折腾了一段时间后,终于想到了个取巧的方法,那就是将搜索框的父元素设置为白色透明的,而其他页面元素则直接设置透明度,如下:

file:themes\next\source\css\_custom\custom.styl

/* 页面透明度 */
.content-wrap, .sidebar {
    opacity: .9 !important;
}
.header-inner {
    background: rgba(255, 255, 255, 0.9) !important;
}

原文地址:https://www.cnblogs.com/yulinlewis/p/9348027.html

时间: 2024-10-08 18:07:31

Hexo瞎折腾系列(2) - 添加背景图片轮播的相关文章

背景图片轮播

1 <title></title> 2 <style type="text/css"></style> 3 </head> 4 <body> 5 6 <img src="img/1.jpg" alt="美女?" width="450" height="550" id="mypic"/> 7 8 <s

Hexo瞎折腾系列(1) - 准备工作与简单美化

前言 网上有不少相关的帖子,不过版本会比较旧,而不同版本可能存在代码不同的问题,不过大部分还是大同小异,本系列就不啰嗦重复了,基本只会按照本人所使用的版本以及个人所使用到的内容来进行介绍. 该系列是对我所使用的Next主题进行个性化定制,涉及到js和css等的修改,还有各种插件的使用:另一个系列是针对Next主题进行一些写作技巧的介绍与运用,希望能对大家有所帮助.有疑问的朋友可以给我留言,我会尽可能回复O(∩_∩)O. 我所使用的Hexo和NexT的版本如下: hexo: 3.7.1 next:

Hexo瞎折腾系列(4) - 站点首页不显示文章全文

文章摘要设置 打开主题配置文件 _config.yml 文件,找到如下: # Automatically Excerpt. Not recommend. # Please use <!-- more --> in the post to control excerpt accurately. auto_excerpt: enable: false length: 150 把这里的false改为true就可以了在首页启动显示文章预览了,length是显示预览的长度. 这里我们可以通过在文章使用&

C#(winform)为button添加背景图片

1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = "" ;来设置图片 而不应该使用  Button.Image = ""; 因为使用BackgroudImage来设置背景图片,我们还可以使用 BackgroundImageLayout来调节图片,让图片更好的显示在button上 通常使用: 1 this.btnReset.BackgroundImage = global::Test.Properties.Resources.b

【瞎折腾系列】mysql存储过程初接触

开始[瞎折腾系列],这个系列纯属瞎折腾,可能没有什么实际意义. mysql存储过程生成表: 新建一张user表,包含id, username , password , usertable字段. 然后创建存储过程: create PROCEDURE create_table() BEGIN DECLARE n int DEFAULT 0; DECLARE t_error INTEGER DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET

MFC添加背景图片

1.在资源里导入一个bmp图片假设名称为IDB_BITMAP1 实现OnPaint方法 CPaintDC dc(this); CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP是你自己的图对应的ID BITMAP bitmap; bmpBack

导航链接添加背景图片替换样式

HTMl代码: <div class="welcome_button"> <ul> <li><a href="#">signup</a></li> <li><a href="#">login</a></li> </ul> </div> CSS样式: <style type="text/cs

swing-窗体添加背景图片的2种方法

在美化程序时,常常需要在窗体上添加背景图片.通过搜索和测试,发现了2种有效方式.下面分别介绍.1.利用JLabel加载图片利用JLabel自带的setIcon(Icon icon)加载icon,并设置JLabel对象的位置和大小使其完全覆盖窗体.这是一个很取巧的办法,代码非常简单,如下所示. JLabel lbBg = new JLabel(imageIcon); lbBg.setBounds(0, 0, frameSize.width, frameSize.height); this.getC

Java怎么添加背景图片

首先,导入相关的包: import java.awt.BorderLayout; import java.awt.Container; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; 也可以用: import java.awt.*: import javax.swing.*: 接着,创建一个Java窗体对象,并设置为可见 e