CSS样式更改篇——背景Background

上篇文章主要讲述了CSS的基础用法,讲述了如何定义头文件,导入CSS文件,id和class选择器,元素选择器,后代选择器,子元素选择器,兄弟选择器,伪类选择器等等,让大家对CSS选择器有个简单的认识和了解。这篇接上篇文章,继续讲解CSS的基础用法。

背景Background

背景可以设置很多,比如背景颜色,背景图片,背景定位,背景重复,背景关联,

1)).背景颜色

<div style='background-color='red'></div>

2)).背景图片

<div style='background-image: url('1.png');'></div>

3)).背景定位

<div style='background-position:center'></div>
center   中间
top      顶部
bottom   底部
right    右边
left     左边
还可以使用百分比来设置定位:
<div style='background-position:40% 50%'></div>
或者设置像素值:
<div style='background-position:100px 100px'></div>

4)).背景显示方式

<div style=' background-repeat:repeat-x'></div>
repeat-x 水平平铺图片
repeat-y 垂直平铺图片
no-repeat 不平铺图片

5)).背景滚动条

<div style='background-attachment:fixed'></div>
fixed   固定 不出现滚动条
scroll  出现滚动条
no      没有滚动条

6)).背景大小

<div style='background-size:50px 50px'></div>

7)).背景图片的定位区域

<div style='background-origin:content-box'></div>
content-box  文本内容区域
padding-box   内边距区域
border-box    外边框区域

8)).背景裁剪区域

<div style='background-clip:content-box'></div>
content-box  裁剪文本内容区域
padding-box  裁剪内边距区域
border-box   裁剪外边框区域

总结

这篇文章主要介绍了CSS样式更改篇中的背景Background的基本设置,希望让大家对CSS选择器有个简单的认识和了解。

****看完本文有收获?请转发分享给更多的人****

IT共享之家

入群请在微信后台回复【入群】

往期精彩文章推荐:

一篇文章带你了解CSS基础知识和基本用法

一、前言

相信做过网页的对Css都不是很陌生,它可以帮助我们重铸网页中很多绚丽的特效,尤其是现在Css已经发展3.0版本,很多功能更是丰富多彩,让我们的开发时间不仅大大缩短,而且还可以轻松做出许多华丽的特效,需要注意的是,Css相当于Html的一个美化装置,所以它必须依赖于Html才能发挥作用,那么今天我们就来深入了解下它吧。

二、Css的用法

1.如何使用Css

要想使用Css来增加Html的美观,有三种方式:

1).头部文件中定义

<style>
    标签的Css属性
</style>

2).导入Css文件

创建一个Css文件,里面写入样式,然后导入
<link rel="stylesheet" type="text/Css" href="1.Css">

3).直接在标签中定义

<div style='width:120px;height:60px;background-color:red'></div>Css注释
注:与Html 不同,它的注释方式是:/* Css语句*/

2.Css的选择器

为什么一开始要讲选择器了,因为我们要想精确修改的Html中的某个元素的属性,就必须使用选择器,它可以通过选择器定位到某个元素上然后修改元素的样式。

1).id和class选择器

id选择器必须现在标签中的定义,然后在在头部标签的style标签中用“#”来表示:

<Html>
<head>
  <title>Css应用</title>
  <style type="text/Css"> 
     #dv{
       background: red 更改div的背景颜色为红色
     }
</style>
</head>
<body>
<div id='dv'>fd</div> 定义一个id为dv的div
</body>
</Html>

class选择器和id选择器差不多,只不过class选择器用”.“来表示:

<Html>
<head>
  <title>Css应用</title>
  <style type="text/Css">
     .dv{
       background: red
     }
</style>
</head>
<body>
<div class='dv'>fd</div>
</body>
</Html>

2).元素选择器

就是指直接声明标签名为选择器,然后更改样式

<Html>
<head>
  <title>Css应用</title>
  <style type="text/Css">
     div{
       background: red
     }
</style>
</head>
<body>
<div>fd</div>
</body>
</Html>

或者声明所有标签名为选择器

<Html>
<head>
  <title>Css应用</title>
  <style type="text/Css">
    Htmlheadbodydiv{
       background: red
     }
</style>
</head>
<body>
<div>fd</div>
</body>
</Html>

也可以使用元素加选择器更加精确的定位到该元素

<Html>
<head>
  <title>Css应用</title>
  <style type="text/Css">
   div#er{
       background: red
     }
</style>
</head>
<body>
<div id='df'>fd</div>
<p>fhsjak</p>
<div id='er'>re</div>
</body>
</Html>

3).后代选择器

访问一个元素内的其它元素,可以是元素内的任意元素

<Html>
<head>
  <title>Css应用</title>
  <style type="text/Css">
     div span{
       background: red
     }
</style>
</head>
<body>
<div>
<p>erzi
<span>sunzi</span>
</p>
</div>
</body>
</Html>

4).子元素选择器

<Html>
<head>
  <title>Css应用</title>
  <style type="text/Css">
     div>p{
       background: red
     }
</style>
</head>
<body>
<div>
<p>erzi
<span>sunzi</span>
</p>
</div>
</body>
</Html>

5).兄弟选择器

位于元素的下一个元素,不在元素内

<Html>
<head>
  <title>Css应用</title>
  <style type="text/Css">
     div+big{
       background: red
     }
</style>
</head>
<body>
<div>
<p>erzi
<span>sunzi</span>
</p>
</div>
<big>borther</big>
</body>
</Html>

6).伪类选择器

伪类选择器可分为三类

1)).锚伪类,用于检测鼠标的悬停状态。

<Html>
<head>
  <title>Css应用</title>
  <style type="text/Css">
     a:link{    /* 未访问的链接 */
       background: red
     }
     a:visited{    /* 已访问的链接 */
      background: green
     }
     a:hover{  /* 鼠标移动到链接上 */
      background: blue
     }
     a:active{  /* 选定的链接 */
      background: yellow
     }
</style>
</head>
<body>
<a href="https://www.baidu.com">百度</a>
</body>
</Html>

注:a:hover必须置于a:link和a:visited 之后,才是有效的。a:active必须被置于a:hover 之后,才是有效的。

2)). :first-child伪类

匹配第一个匹配到的标签

<Html>
<head>
  <title>Css应用</title>
  <style type="text/Css">
     p:first-child{  匹配第一个p标签
       background: red
     }
     div:first-child{ 匹配第一个div标签
      background: blue
     }
</style>
</head>
<body>
<div id='dv'>
<p class='fd'>fdaf
<div id='gfd'>grerg</div>
</p>
<div class='gf'>fsdjkfhkj
<a href="https://www.baidu.com">baidu</a>
</div>
</div>
</body>
</Html>

3)). :lang伪类

<Html>
<head>
  <title>Css应用</title>
  <style type="text/Css">
  q:lang(hw)  短引用利用伪类
   {
   quotes: "^" "^"
   }
</style>
</head>
<body>
<div id='dv'>
<p>hw<q lang="hw">任性的90后boy</q></p> 必须要用短引用
</div>
</body>
</Html>
<Html>
<head>

三、总结

这篇文章主要讲述了CSS的基础用法,讲述了如何定义头文件,导入CSS文件,id和class选择器,元素选择器,后代选择器,子元素选择器,兄弟选择器,伪类选择器等等,希望让大家对CSS选择器有个简单的认识和了解。

****看完本文有收获?请转发分享给更多的人****

IT共享之家

入群请在微信后台回复【入群】

往期精彩文章推荐:

零基础打造一款属于自己的网页搜索引擎

【前言】

在说这个之前,想必大家应该都比较了解搜索引擎了,它就是通过用户在浏览器输入框中输入文本,从而显示一些结果,你觉得哪项符合你要搜索的内容,你就点击哪项。

【一、项目准备】

浏览器:360浏览器

编辑器:Sublime Text 3

插件:Jquery-3.2.1.Min.Js

【二、项目实现】

由于是要实现一个网页搜索引擎,所以我们需要借用网页三剑客(Html+Css+Javascript),然后实现这一功能。

1.打开百度分析网页结构

我们可以先看看百度的搜索引擎:

可以看到,这个搜索框的部分设置,比如关闭自动完成功能。然后我们在随便搜索内容来查看它的变化:

可以看到某些我们查询的关键字,于是我们便发现了请求规律:

https://www.baidu.com/s?+查询字符参数

这就构成了我们的一个完整的get请求,而且这里面有很多关键字参数可以省略掉,只需要保留重要的一部分就好了。于是,经试验,得出如下结论:

https://www.baidu.com/s?wd=keyword

这个才是请求的接口地址,只需将keyword参数替换为任意搜索关键字即可实现查询并跳转到相应结果页面。

2.编写Html输入框,搜索按钮

看过之前写的Html系列的文章,你将不再对此感到困惑。

<html>
<head>
 <title></title>
 <style type="text/css">
    *{           内外边距初始时为0
       margin:0;    
       padding:0
    }
     input{
        width:300px;
        height:30px
    }
     span{
       position:absolute; 绝对定位
       background-color:red; 背景颜色
       border:1px solid gray; 边框设置
       width:60px;
       height:32px;
       text-align:center 文字位置
    }
    span:hover{ 鼠标悬停时的样式
        background-color:blue
    }
 </style>
</head>
<body>
<input type="text" name="" placeholder="请输入要搜索的内容"> 文本框
<span>search</span> 搜索按钮
</body>
</html>

编写完成后进入浏览器查看,即可看到:

可以看到,已经有点浏览器搜索框的意思了。

3.导入Jquery插件

<script src='jquery-3.2.1.min.js'></script>

4.编写js脚本

这个是重中之重,打开浏览器,network,继续分析:

可以看到搜索结果就在里面。然后打开这个请求的url地址,经过多次实验,发现就只有图中标记的参数有变化:

 

所以我们可以得出结论,我们只需要改变这两个值即可。

1).创建删除脚本

于是我先创建一个脚本标签,不用它的时候随时可以清除,避免占用内存,导致页面打开迟缓,性能降低:

var script=document.createElement('script');  创建script的标签
script.id='jsonp';   设置id为jsonp
script.src='https://www.baidu.com/sugrec?prod=pc&cb=getData&wd='+wd;  设置它的地址
document.body.appendChild(script);   添加script元素到body中

然后等它不用了,随时将它删除:

var script=document.createElement('script');  创建script的标签
script.id='jsonp';   设置id为jsonp
script.src='https://www.baidu.com/sugrec?prod=pc&cb=getData&wd='+wd;  设置它的地址
document.body.appendChild(script);   添加script元素到body中

2).生成选项下拉菜单

我们在浏览器可以看到,只要一输入文本,它就会弹出对应的选项让我们选择,那么这是如何办到的了?

<script>
function getlist(wd){    /*获取下拉列表*/
   var script=document.createElement('script');  /*创建script的标签*/
   script.id='jsonp';   /*设置id为jsonp*/
   script.src='https://www.baidu.com/sugrec?prod=pc&cb=getData&wd='+wd; /* 设置它的地址*/
   document.body.appendChild(script);   /*添加script元素到body中*/
}
function getData(data){  /*获取数据*/
     var script=document.querySelector('#jsonp'); /*选择id为jsonp的元素*/
     script.parentNode.removeChild(script);  /*从这个元素的父元素中删除这个元素*/
     $('ol').html('');  /* 设置有序列表的值为空*/
     var da=data.g;   /* 获取搜索的结果*/
  if(da){                     /*结果存在的话就将结果放到li标签中*/
   da.forEach(function(item,index){  
     $('<li><a target="_blank" href ="https://www.baidu.com/s?wd='+item.q+'">'+item.q+'</a></li>').appendTo('ol');
    })
    }
}


     /* 判断键盘是否按下*/
   $('input:text').keyup(function(){
      var wd=$(this).val();  /* 输入框的值*/
      if(wd==''){           /*如果值是空,那么就隐藏,否则显示*/
          $('ol').css('display','none');
          $('ol').css('zIndex',-10);  
      }else{
          $('ol').css('display','block');
       $('ol').css('zIndex',20);
      }
         getlist(wd);
  });
   </script>

可以看到,搜索结果已经出来了,而且有序列表下的”li”标签也都对应的生成了。

3).给选项标记序列

我们可以看到,结果终于出来,但是我想给它个序列号,这样就可以知道搜索结果有多少个了。要设置的标记方式有很多种,可以以数字开头,也可以是大小写字母或者罗马时间。在这里我选择数字,很简单。

终于非常完美的实现了这一功能,是不是很惊艳了,赶快去试下吧。

4).搜索刷新

看到这里相信大家应该都知道这个功能已经算是完成了,我们只需要随便点击哪个li标签都可以访问到相应的页面。于是,我决定添加一个刷新的功能,属于重连服务器的那种刷新:

<span onclick='window.location.reload()'>search</span> 点击后立即刷新

【三、项目总结】

总的来说,对于初学者小白是个很不错的练手项目,希望大家能从中有所收获。

需要源码的小伙伴,后台回复“搜索引擎”四个字即可获取。

——————- End ——————-
看完本文有收获?请转发分享给更多的人

IT共享之家

入群请在微信后台回复【入群】

手把手教你不用客户端也能轻松下载音乐视频

/1 前言/

今天要跟大家分享一些非常实用的技巧,不涉及到代码。当然你若是想把这些实现的步骤简化的话,用代码当然是最好的了。

今天的目的很简单,就是在不用安装客户端的情况下把酷我音乐里的音乐下载下来。

 

/2 涉及的工具/

1、360浏览器、谷歌浏览器等。

 

/3 方法一/

1、打开浏览器,并输入酷我音乐,来到酷我听歌页面。

2、输入我平时最喜欢听的歌 just like this ,得到如下图。

3、我们都知道,当我们在网上听歌的时候,想要把它保存下来的话了,他会弹出个对话框,诸如下图这样。

很显然,这不是我们想要的,因为太麻烦了。我们得找个简单点的方法,这样才符合我们的风格。

4、既然说到这了,那么该怎么处理这个问题了,毕竟大话已经说出去了,哈哈哈。我们都知道,html里面播放音频的标签是audio,所以我们先试试看能不能搜索到这个标签的位置,老样子,F12,如图:

5、通过自己不懈的努力,还真就找到了,哈哈哈哈,看图就知道。

6、接下来就很简单了,直接复制地址到浏览器就可以播放并且下载了,不信你看。

 

/4 方法二/

上面提及的还只是第一种方法,下面介绍的这种方法更为巧妙。

1、我们都知道刚下载的文件为mp3后缀,所以我们是不是可以搜索mp3后缀的相关字段了。废话少说,操起键盘直接干。

首先我们打开network 分析网络请求状况。如图:

2、经过查找后我们发现第二个很符合我们的要求,来看下。

3、我们点击第二项,他就会切换到他的当前状态了,如图所示。

4、仍然选中右键转到链接地址,如下图所示。

5、可以看到界面已经出来了,完美解决。

 

/5 拓展/

日常生活中,我们还可能会遇到视频观看无法下载的情况,以看点快报为为例。

发现Ctrl +F搜索这项技能很管用啊,哈哈啊哈,当然也可以network,这里不在累述,希望大家通过此文能有所收获。

 

/6 小结/

本文基于网页结构,给大家介绍了不需要在本地进行写代码,即可获取音频网站上的音频和视频方法。当然了,这种方法并不是放之四海而皆准的,还是存在较多局限性的。不过日后在网页上遇到自己想要下载的音频或者视频的话,不妨用此方法小试牛刀?

——————- End ——————-
看完本文有收获?请转发分享给更多的人

IT共享之家

入群请在微信后台回复【入群】

往期精彩文章推荐:

一篇文章教会你使用html+css3制作炫酷效果

【一、项目背景】

在浏览一些网站的时候,经常会看到很多的炫酷的效果去装饰页面,使它看起来更高端大气一些。比如,艺龙就采用了图片上加载文字,点击图片使把对应的图片放大,使用户清晰,直观的看到内容。这种效果该怎么做呢?

今天教大家用简单的html+css3结合制作艺龙的页面效果。

 

【二、项目准备】

1、图片:新建img文件,准备自己喜欢的五张图,保存在文件夹。

2、软件:Dreamweaver

 

【三、项目目标】

运行时:图片显示缩略图。文字显示在上面。

点击时:把对应的图片显示并放大,点击文字有详细的介绍。

 

【四、项目实现】

1、创建div 存放图片和文件,添加class属性。

<body>
<div  class="show">
<div class="wap">
  <div class="box" >
    <img src="images/img1.jpg">
    <span class='ba'>
  </div>
  <div class="box">
    <img src="images/img2.jpg">
    <span class='ba'></span>
    
  </div>
  <div class="box">
    <img src="images/img3.jpg">
    <span class='ba'></span>
  </div>
  <div class="box">
    <img src="images/img4.jpg">
    <span class='ba'></span>
  </div>
  <div class="box">
    <img src="images/img5.jpg">
    <span class='ba'></span>
  </div>
  </div>
</div>
</body>

2、添加文字。

<span class='ba'>功夫熊猫</span>
<span class='ba'>飞屋环游记</span>
<span class='ba'>汽车总动员</span>
<span class='ba'>玩具总动员</span>
<span class='ba'>机器人</span>

3、添加CSS样式

1)设置body的背景颜色为灰色。

body
  {
    background: #ccc;
  }

2)设置box的宽,边框,边框阴影,加载动画过渡效果。

.box{
    float: left;
    width: 160px;
    transition: all 0.5s;
    border: 1px solid #fff; #边框
    box-shadow: -5px 0px 10px 0px #000; #阴影
    position: relative;
  }

3)添加外层div 样式。添加overflow属性,防止内容溢出。

.wap{
    width: 999999999px;
    overflow: hidden;
  }
  .show{
    width: 800px;
    height: 320px;
    overflow: hidden;
    margin: 200px auto;
    box-shadow: 5px 5px 10px 4px #000;
  }

4、文字样式。

设置高,宽,行高设置跟高一样, 文字才能居中显示。设置文字背景颜色,大小。

.ba{
       width: 640px;
       height: 50px;
       line-height: 50px;
    color: #fff;
    background: rgba(0,0,0,0.5);
        bottom: 0;
        left: 0;
    position: absolute;
    text-indent: 2em;    
  }

5、添加鼠标移上去的效果样式。

 .ba:hover{    
       height: 320px;
       transition: all 0.5s;
  }
  .show:hover .box{
    width: 40px;

  }
    
  .show .box:hover{
    width: 640px;

  }

6、添加详细介绍文字。(text文件自取)。

 

【五、效果展示】

1、点击F12运行到浏览器。

2、点击图片放大。

3、点击文字,详细介绍。

 

【六、总结】

1、本项目,就鼠标点击事件遇到的一些难点进行了分析及提供解决方案。

2、html+css也可以做出网站页面的效果,在上面显示图片标题的地方不能用绝对定位,于是用的relative定位,这个地方是布局的核心部分,否则无法将文字放在图片之上。

3、按照操作步骤,自己尝试去做。自己实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

4、需要本文源码的小伙伴,后台回复“炫酷效果”四个字,即可获取。

****看完本文有收获?请转发分享给更多的人****

IT共享之家

入群请在微信后台回复【入群】

——————- End ——————-

往期精彩文章推荐:

一篇文章教会你利用createjs实现界面效果

【一、项目背景】

createjs是一个基于canvas的制作H5游戏、动画、交互的库。包括EaselJs、TweenJs、SoundJs、 PreloadJs四个部分。它基于容器进行展示,其中根容器是stage(舞台)对象。

今天教大家用EaselJs、TweenJs结合做一个游戏说明界面。

 

【二、项目准备】

1、去网站:

http://www.createjs.cc/

下载EaselJs、TweenJs这两个模块。

 

【三、需要的工具】

Adobe Dreamweaver

 

【四、项目目标】

运行到浏览器,弹框从上往下滑到指定位置,点击红色按钮,跳转4399游戏界面。

 

【五、项目分析】

1、创建画布canvas。创建一个div,用h3表示标题,P标签加载内容用a标签做按钮,如图:

 

【六、项目实现】

1、导入EaselJs、TweenJs模块。

<script src="js/easeljs-0.7.1.min.js"></script>
<script src="js/tweenjs.min.js"></script>

body 创建画布canvas 设置画布大小,画布添加描边 ,id属性。

<canvas id="canvas" width="500" height="400" style="border: 1px solid#050000" ></canvas>

2、创建div 设置对应的标签,内容,按钮模块。设置div的id属性。

<div id="instrutions" style="width: 400px; height: 300px;border: 1px dashed #00d0ff;text-align: center; visibility: hidden">
        <h3>游戏说明</h3>
      <p><b>点击</b><span style="color: red;"a>红色</span>按钮</p>
        <p >Make sure you click them <span style="text-decoration: underline;">all</span>before time runs out!</p>
        <p>Rack up <i>as many points </i>as you can to reach the <span style=a"color: #0c61ff">BULE</span>level.</p><a style="background-color:#f00;">开始游戏</a>
        <h2 style="font-weight: bold; margin-top: 30px;">
    GOOD LUCK!</h2>

3、js加载,实现动画效果。

 window.onload=function () {
            var  stage=new createjs.Stage(canvas);
            var d=new createjs.DOMElement("instrutions");
            d.alpha=0;
            d.x=50;
            createjs.Tween.get(d).wait(100).to({y:40,alpha:1},2000,createjs.MotionGuidePlugin.bounceIn);

            stage.addChild(d);
        createjs.Ticker.addEventListener("tick",stage);
        }

代码解析:

1)表示页面已加载就要执行的函数。

window.onload=function ()

2)创建一个名为canvas的舞台(stage)**

var stage=new createjs.Stage(canvas) 

3)找到div的对应的id属性,设置它的不透明度为0,(刚开始不可见)初始化x坐标。

var d=new createjs.DOMElement("instrutions");
            d.alpha=0;
            d.x=50;

4)get()表示你要改变的对象,括号内输入id值。wait()表示你要延迟显示的时间,to()表示你要让它做什么事情,(这里给它到y坐标为40,并且把它的不透明度为1 ) ,MotionGuidePlugin.bounceIn:表示让它从上往下掉。**

createjs.Tween.get(d).wait(100).to({y:40,alpha:1},2000,createjs.MotionGuidePlugin.bounceIn);

5)组件添加到舞台(stage),createjs.Ticker.addEventListener(“tick”,stage);表示刷新舞台。**

stage.addChild(d);
createjs.Ticker.addEventListener("tick",stage); 

 

【六、效果展示】

1、F12运行到chrome浏览器,div块从上往下掉落。

2、点红色按钮跳转页面。

 

【七、总结】

1、本文主要介绍了createjs中EaselJs、TweenJs的用法,以及对stage是如何创建的,stage上 页面的动画效果。在页面上如何去呈现stage。以及页面是如何的跳转。js如何调用实现功能。

2、就本项目中的难点,重点,提供了详细的讲解和提供有效的解决方案。

3、大家可以尝试了解createjs的其他模块,官网上有对应的API文档供大家学习。

4、按照操作步骤,自己尝试去做。自己实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

5、如果需要本文源码,请在公众号后台回复“动画效果”四个字获取。

****看完本文有收获?请转发分享给更多的人****

IT共享之家

入群请在微信后台回复【入群】

—————— End ——————

往期精彩文章推荐:

 

一篇文章教会你创建vue项目和使用vue.js实现数据增删改查

【一、项目背景】

在管理员的一些后台页面里,数据列表中都会对这些数据进行增删改查的操作,例如管理员添加商品、修改商品价格、删除商品、查询商品,我们应该关注这些数据的操作和处理。

 

【二、项目目标】

主要有以下5个目标:

1、如何创建vue项目。

2、数据添加方法:获取到id和name在data上面获取,组织一个对象,把对象通过数组的相关方法,添加到当前data的自定义的一个数组,在VM使用Model数据操作。

3、数据删除方法:根据id找到要删除这一项的索引值,找到后调用数组的splice方法。

4、数据修改方法:根据Id找到修改这一项的索引值,找到索引值后数据就会更改。

5、数据查询方法:在ES6中,为字符串提供了一个新方法:

String.prototype.includes('要包含的字符串')

如果包含,则返回 true ,否则返回 false。

 

【三、效果展示】

先上结果显示图后,小编就开始教你如何写这个项目。

 

【四、创建vue项目】

下面介绍如何创建vue的项目。

1)打开cmd命令步骤:第一步点击开始菜单,找到“运行”,点击进去,也可以直接通过“win+R”打开运行,

2)第二步进去运行之后,在运行输入框里面输入“cmd”,

3)第三步点击确定,就进去命令提示符了。

4)安装npm(npm全称为 Node Package Manager是一个基于Node.js的包管理器,也是整个Node.js社区最流行、支持的第三方模块最多的包管理器)。

npm -v

5)npm安装如下图所示:

6)由于网络原因安装cnpm

 npm install -g cnpm --registry=https://registry.npm.taobao.org

7)安装vue-cli

cnpm install -g @vue/cli

8)安装webpack

cnpm install -g webpack<br>
webpack是JavaScript打包器(module bundler

9)安装完之后开始创建项目。输入vue ui如下图所示:

10)输入之后会弹出一网页如下图

11)点击vue项目管理器;

12)点击在此创建新项目;

13)输入项目名(我的项目名是test)后点击下一步;

14)创建项目完成。

15)创建项目加载需要一定时间,加载完后再使用命令行进到这个项目输入npm install 后再运行这个项目输入命令cnpm run serve如下图:

16)最后根据Local或Network输入到网址中;

以上就是创建vue项目,接下我们开始写这个添加、删除、修改、查询数据商品代码。

 

【五、界面的布局】

这个项目我们用到boostrap.css文件,怎么引入这个boostrap的包呢?

1)打开cmd命令再这个项目输入npm install bootsrtap;

2)在style样式内写入这行代码:

@import "~bootstrap/dist/css/bootstrap.min.css"

3)写页面需要用到的组件布局:

4)在v-for 中的数据,直接从 data 上的list中直接渲染过来的,我们自定义了一个 search 方法,同时,把所有的关键字,通过传参的形式,传递给了 search方法,在 search 方法内部,通过for 循环,把所有符合 搜索关键字的数据,保存到 一个新数组中,返回。

5)接下在data定义id、name、keywords、list。

 

【六、数据添加方法】

1、获取到id 和name,在data 上面获取。

2、组织出一个对象,把这个对象调用数组的相关方法,添加到当前data 上的 list 中。

3、在Vue.js中已经实现了数据双向绑定,每当我们修改了data中的数据后,监听到数据改名,自动把最新数据显示在页面。

4、在进行VM中的Model数据操作,同时,在操作Model数据的时候,指定的业务逻辑操作。

5、代码如下图:

 

【七、数据删除方法】

1、如何根据Id,找到要删除这一项的索引值。

2、当找到索引了就调用数组的 splice方法。

3、代码如下图:

 

【八、数据修改方法】

1、定义一个在data自定义一个数组用来保存修改后的数据edit:[];

2、在方法里面定义对象,根据Id,找到修改这一项的索引值,找到索引值后数据就会更改。

3、代码如下图:

 

【九、数据查询方法】

1、forEach 、some 、filter 、findIndex这些都属于数组的新方法,都会对数组中的每一项,进行遍历,执行相关的操作。

2、在ES6中,为字符串提供了一个新方法,String.prototype.includes(‘要包含的字符串’),如果包含,则返回 true ,否则返回 false。

3、代码如下图:

 

【十、总结】

1、创建vue项目使用cmd命令安装npm、cnpm、vue-cli、webpack,输入vue ui开始创建vue项目。

2、删除方法,可以使用索引,为每一行设置一个id属性值,然后删除总数据id属性值的那个项。

3、操作Model数据的时候,指定的业务逻辑操作。

****看完本文有收获?请转发分享给更多的人****

IT共享之家

入群请在微信后台回复【入群】

往期精彩文章推荐:

一篇文章带你用jquery mobile设计颜色拾取器

【一、项目背景】

现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。

我们可以通过 jquery mobile去设计颜色的拾取器,得到我们想要的颜色值。同时可以验证RGB表的颜色值。

 

【二、项目准备】

框架:jquery mobile

软件:Dreamweaver

1、去官网 jQuerymobile.com 下载jquery mobile。

2、在你的网页中添加 jQuery Mobile

你可以通过以下几种方式将jQuery Mobile添加到你的网页中:

  • 从 CDN 中加载 jQuery Mobile (推荐)。
  • 从jQuerymobile.com 下载 jQuery Mobile库。

3、导入jQuery Mobile

<link href="jquery.mobile/jquery.mobile-1.4.5.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="jquery.mobile/jquery-1.12.2.min.js"></script>
<script type="text/javascript" src="jquery.mobile/jquery.mobile-1.4.5.js"></script>

 

【三、项目目标】

1、滑动滑块将对应的颜色显示在页面。

2、实现输入框,输入对应的RBG值,将结果显示在页面上。

 

【四、项目实现】

1、创建三层div块。(头部,中部,尾部)。

<body>
<div data-role="page" ">
    <div data-role="header">
        <h1>拾色器</h1>
    </div>
    <div data-role="content" class="color"> </div>
    <div data-role="footer" data-position="fixed">
       
    </div>
</div>
</body>

头部显示文字,中部颜色显示区域,尾部显示滑动条。

2、创建一个表单(用三个input来分别存放RGB这三种颜色)。

<form>
     <input name="red" id="red" min="0" max="255" value="0" type="range" " />
     <input name="green" id="green" min="0" max="255" value="0" type="range"" />
     <input name="blue" id="blue" min="0" max="255" value="0" type="range"  />
</form>

3、添加CSS样式

<style type="text/css">
.color {
    height: 100%;
    min-height: 400px;
}
</style>

4、添加 JS

1) 定义(set_color()方法)获取相对于颜色的id属性。

<script>
function set_color(){
    var red = $("#red").val();        //获取红色数值
    var green = $("#green").val();        //获取绿色数值
    var blue =$("#blue").val();        //获取蓝色数值
}
</script>

2)生成rgb表示的颜色字符串。

var color = "RGB("+red+","+green+","+blue+")";  //生成rgb表示的颜色字符串

3)设计内容框背景色。

$(".color").css("background-color",color);       //设计内容框背景色

5、调用set_color()。

<input name="red" id="red" min="0" max="255" value="0" type="range" onchange="set_color();" />
<input name="green" id="green" min="0" max="255" value="0" type="range" onchange="set_color();" />
<input name="blue" id="blue" min="0" max="255" value="0" type="range" onchange="set_color();" />

 

【五、效果展示】

1、点击运行。

2、点击f12进入开发者模式,点击蓝色框框切换手机模式运行。

3、滑动任意一条滑动条。得到想要的颜色。

4、手动输入RGB(0-255)值,得到相对应的颜色,如下图所示。

 

【六、总结】

1、使更多的人去了解jQuery Mobile, jQuery可以快速找到文档中的html元素,并对其进行操作,如隐藏、显示、改变样式…”。

2、本项目主要学习了input标签(类型:滑动条)如何与js绑定,获取事件响应。

3、颜色拾取器项目中,随机产生颜色这个难点进行了有效的分析,并提供解决方案。

4、按照操作步骤,自己尝试去做。自己实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

5、需要本文源码的小伙伴,后台回复“颜色拾取”四个字,即可获取。

****看完本文有收获?请转发分享给更多的人****

IT共享之家

入群请在微信后台回复【入群】

—————— End ——————

往期精彩文章推荐:

一篇文章教会你使用HTML打造一款颜色配对游戏

【一、项目背景】

createjs是一个基于canvas的制作H5游戏、动画、交互的库。包括EaselJs、TweenJs、SoundJs、 PreloadJs四个部分。它基于容器进行展示,其中根容器是stage(舞台)对象。

今天教大家用EaselJs、TweenJs结合做一个颜色配对游戏。

 

【二、项目准备】

1、去下方网站:

http://www.createjs.cc/

然后下载EaselJs、TweenJs这两个模块。

2、软件:Dreamweaver

 

【三、项目目标】

随机产生4种颜色,让下方的色块通过鼠标移动,匹配上方的颜色框。如果上方颜色框与下方色块颜色相同。全部色块匹配完成则为成功。

 

【四、项目实现】

1、导入EaselJs、TweenJs模块。

<script src="js/easeljs-0.7.1.min.js"></script>
<script src="js/tweenjs-0.5.1.min.js"></script>

2、body 创建画布canvas 设置画布大小,画布添加描边 ,id属性。

<canvas id="canvas" width="600" height="400" style="border: black solid 1px"></canvas>

3、创建shapes.js文件。定义一个初始化init()方法 ,创建stage对象。

function init() {
    stage = new createjs.Stage("canvas");
}

4、定义画图形方法buildShapes(),调用createjs.Shape()方法 用graphics绘制描边正方形。填充颜色。

function buildShapes() {
    var colors = ['blue', 'red', 'green', 'yellow'];
    var i, shape, slot;
    for (i = 0; i < 4; i++) {
        //slots 描边正方形
        slot = new createjs.Shape();
        slots.push(slot);
        //shapes 正方形
        shape = new createjs.Shape();
        shape.graphics.beginFill(colors[i]);
        shape.graphics.drawRect(0, 0, 100, 100);
        shape.regX = shape.regY = 50;
        shape.key = i;
        shapes.push(shape);
    }
}

5、设置正方形x,y的位置, for循环随机填充颜色,添加在stage上。

slot.graphics.beginStroke(colors[i]);
slot.graphics.beginFill(createjs.Graphics.getRGB(255, 255, 255, 1));
slot.graphics.drawRect(0, 0, 100, 100);
slot.regX = slot.regY = 50;
slot.key = i;
slot.y = 80;
slot.x = (i * 130) + 100;
stage.addChild(slot);

6、定义setShapes方法,for循环随机产生一个r值,添加到shapes。产生移动的正方形。添加到舞台(stages)上。

function setShapes() {
    var i, r, shape;
    var l = shapes.length;
    for (i = 0; i < l; i++) {
        r = Math.floor(Math.random() * shapes.length);
        shape = shapes[r];
        shape.homeY = 320;
        shape.homeX = (i * 130) + 100;
        shape.y = shape.homeY;
        shape.x = shape.homeX;
        stage.addChild(shape);
        shapes.splice(r, 1);
    }
}

7、添加鼠标事件。控制正方形移动。

 shape.addEventListener("mousedown", startDrag);

8、定义开始游戏方法startGame,设置游戏的帧数,添加监听事件。

function startGame() {
    createjs.Ticker.setFPS(60);
    createjs.Ticker.addEventListener("tick", function (e) {
        stage.update();
    });
}

9、判断游戏方法startDrag(e)

1)获取当前鼠标的坐标。

var shape = e.target;

2)让鼠标的坐标等于填充正方形的坐标。

stage.addEventListener('stagemousemove', function (e) {
        shape.x = e.stageX;
        shape.y = e.stageY;
    });

3)hitTest方法。测试图像是否与颜色相同的框有交集,判断颜色是否相同。

if (slot.hitTest(pt.x, pt.y)) {
            shape.removeEventListener("mousedown",startDrag);
            score++;
            createjs.Tween.get(shape).to({x:slot.x, y:slot.y}, 200, createjs.Ease.quadOut).call(checkGame);
            console.log('h');
        }
        else {
            
        }

4)TweenJs设置动画效果。

createjs.Tween.get(shape).to({x:shape.homeX, y:shape.homeY}, 200, createjs.Ease.quadOut);

10、定义赢的方法checkGame ,用score分别代表四种颜色色块,判断score的值。

function checkGame(){
    if(score == 4){
        alert('You Win!');
    }
}

11、在init()中,调用方法,实现效果

buildShapes();
setShapes();
startGame();

 

【五、效果展示】

1、f12运行到chrome浏览器。

2、拖动随机颜色块,匹配颜色框。

3、四个颜色块匹配完成 弹框 (胜利)!!

 

【六、总结】

1、本文主要介绍了createjs中EaselJs、TweenJs的用法,以及对stage是如何创建的,在stage上怎么去绘制图形。在页面上如何去呈现stage。

2、就本项目中的难点,重点,提供了详细的讲解和提供有效的解决方案。

3、大家可以尝试了解createjs的其他模块,官网上有对应的API文档供大家学习。

4、按照操作步骤,自己尝试去做。自己实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

5、需要本文源码的小伙伴,后台回复“颜色配对”四个字,即可获取。

看完本文有收获?请转发分享给更多的人

IT共享之家

入群请在微信后台回复【入群】

—————— End ——————

往期精彩文章推荐:

 

一篇文章教会你利用html5和css3实现3D立方体效果图

【一、项目背景】

随着HTML5 CSS3的出现和发展,使得我们的网页可以实现更加复杂的效果,也使得我们的浏览体验更加丰富,所以今天我们将制作一个正方体的3D效果。

 

【二、项目分析】

想要利用CSS3实现3D立方体,就要清楚立方体是由六个面组成,分上下左右和前后,考虑这些可以帮助我们更好的融入CSS3的代码。

因此我设置了6个div,作为立方体的6个面。因为定位的原因,一开始所有的盒子都是面对着屏幕这面的,因此要赋予每个面不一样的值,即不一样的位置它才能展现出来。

 

【三、需要的工具】

Adobe Dreamweaver

 

【四、项目目标】

实现3的l立方体旋转,鼠标移上去实现缩放效果。

 

【五、项目实现】

1、打开Adobe Dreamweaver,新建html文档。把标题改为“3d立方体”。

2、在body标签,创建一个div盒子 ,给它class属性,在外层div里面在创建6个div表示立方体的六个面,同样给它们 class属性。

<body>
    <div class="box">
      <div class="box2">
        <div class="box-2">top</div>
        <div class="box-2">btm</div>
        <div class="box-2">left</div>
        <div class="box-2">right</div>
        <div class="box-2">face</div>
        <div class="box-2">back</div>
      </div>
    </div>
</body>

3、创建CSS样式

<style type="text/css">
.box {
  width: 200px;
  height: 200px;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  transition: all 2s;
  transform-style: preserve-3d;
  transform: rotateX(15deg) rotateY(-15deg);
}
.box:hover {
  transform: rotateX(300deg) rotateZ(300deg) rotateY(-300deg) scale(0.5);
}
.box .box-2 {
  width: 100px;
  height: 100px;
  text-align: center;
  line-height: 100px;
  font-size: 1.2em;
  position: absolute;
  top: 0;
  left: 0;
}
.box .box-2:nth-child(1) {
  /*小立方体第一面*/
  background: rgba(225,0,0,0.5);
  transform: rotateX(90deg) translateZ(50px); #角度 偏移量
}
.box .box-2:nth-child(2) {
    /*小立方体第二面*/
  background: rgba(255,255,0,0.5);
  transform: rotateX(-90deg) translateZ(50px);
}
.box .box-2:nth-child(3) {
    /*小立方体第三面*/
  background: rgba(225,0,255,0.5);
  transform: rotateY(-90deg) translateZ(50px);
}
.box .box-2:nth-child(4) {
     /*小立方体第四面*/
  background: rgba(0,255,0,0.5);
  transform: rotateY(90deg) translateZ(50px);
}
.box .box-2:nth-child(5) {
     /*小立方体第五面*/
  background: rgba(225,0,0,0.5);
  transform: translateZ(50px);
}
.box .box-2:nth-child(6) {
    /*小立方体第六面*/
  background: rgba(0,0,255,0.5);
  transform: rotateY(180deg) translateZ(50px);
}
</style>
  </head>
  <body>
    <div class="box">
      <div class="box2">
        <div class="box-2">top</div>
        <div class="box-2">btm</div>
        <div class="box-2">left</div>
        <div class="box-2">right</div>
        <div class="box-2">face</div>
        <div class="box-2">back</div>
      </div>
    </div>
</body>
</html>

方法说明:

rotateX() 方法

通过 rotateX() 方法,元素围绕其 X 轴以给定的度数进行旋转。

rotateY() 旋转

通过 rotateY() 方法,元素围绕其 Y 轴以给定的度数进行旋转。

rotateZ() 旋转

通过 rotateZ() 方法,元素围绕其 Z 轴以给定的度数进行旋转。

下表是部分属性所代表的含义:

4、运行一下看下效果;点击F12运行。

5、呈现的效果如下图所示。

可以看到效果基本上可以 ,可是鼠标移上去没有效果。

6、添加鼠标移上去缩放的效果

.box:hover{
    transform: rotateX(300deg) rotateZ(300deg) rotateY(-300deg) scale(0.5);

  } # scale是缩放倍数

7、外层再添加一个3d立方体形成叠加效果

body代码:

<div class="box">
<div class="box-1">top</div>
<div class="box-1">btm</div>
<div class="box-1">left</div>
<div class="box-1">right</div>
<div class="box-1">face</div>
<div class="box-1">back</div>
</div>

CSS样式代码

<style type="text/css">
.box .box-1{
    width: 200px;
    height: 200px;
    text-align: center;
    line-height: 200px;
    font-size: 2em;
    position: absolute;
    top: 0;
    left: 0;
  }
  .box .box-1:nth-child(1){
    /*大立方体第一面*/
    background: rgba(225,0,0,0.5);
    transform:rotateX(90deg) translateZ(100px);

  }.box .box-1:nth-child(2){
         /*大立方体第二面*/
    background: rgba(255,255,0,0.5);
    transform:rotateX(-90deg) translateZ(100px);

  }.box .box-1:nth-child(3){
        /*大立方体第三面*/
    background: rgba(225,0,255,0.5);
    transform:rotateY(-90deg) translateZ(100px);
  }.box .box-1:nth-child(4){
         /*大立方体第四面*/
    background: rgba(0,255,0,0.5);
    transform:rotateY(90deg) translateZ(100px);

  }.box .box-1:nth-child(5){
        /*大立方体第五面*/
    background: rgba(225,0,0,0.5);
      transform:translateZ(100px);
  }.box .box-1:nth-child(6){
        /*大立方体第六面*/
    background: rgba(0,0,255,0.5);
    transform:rotateY(180deg) translateZ(100px);
  }
</style>

 

【六、效果展示】

1、点击运行,效果如下图所示。

2、鼠标移到立方体上,缩放效果展示,如下图所示。

 

【七、总结】

1、整个效果写出来,还是比较简单的,只要明白各个命令的意思,剩下的就是组织一下逻辑而已。

2、欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

3、CSS样式的效果不止这些,还有更加炫酷的效果,值得大家去学习。

4、实现的方法3d立方体的方法有很多,但这是最简单的一种。

5、如果需要本文源码,请在公众号后台回复“立方体”四个字获取。

看完本文有收获?请转发分享给更多的人

IT共享之家

入群请在微信后台回复【入群】

——————- End ——————

往期精彩文章推荐: