html对图片轮播脚本怎么调用,【jquery前端开发】可调整的幻灯片(图片轮播)

第一次写博客,希望接下来写的东西 或多或少能帮到些人,虽然这些东西都是一些大神前辈们写了无数遍的东西,但我尽量以一名小白的视角把代码写得清楚点,好心人的就给点赞吧。

1.前期准备

这是我们编写代码前必须要做的事,在这里我们首先要明确下作品要具备的功能。

1.支持幻灯片的大小控制

这里我们用SLIDER_BOX_WIDTH,SLIDER_BOX_HEIGHT分别表示幻灯片的宽和高

2.支持幻灯片放置位置的控制,即可以将幻灯片放在任何DIV下

这里我们用SLIDER_BOX_CLASS 表示装入幻灯片的DIV的类名

3.支持幻灯片切换方式的变换

这里我们用SLIDER_TYPE 表示幻灯片的切换方式,这里主要是两种(slider滑动和fade淡入淡出)

4.支持图片张数的添加

这里我们用NUM_OF_IMG 表示

5.能够根据需要调整是否自动播放,动画的运行时间,动画的间隔时间,以及是否悬停,显示内容等等,这些就等到我们做的时候再做说明。

其中调用的是一个style.css文件和一个slider.js文件

2.HTML准备

slider

其实就是加一个class名为slider_box的div罢了。。

3.CSS准备

/*************reset***************/

html{color:#333;-webkit-text-size-adjust:none; }

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}

table{border-collapse:collapse;border-spacing:0;}

fieldset,img{border:0;}

address,caption,cite,code,dfn,em,var,optgroup{font-style:inherit;font-weight:inherit;}

del,ins{text-decoration:none;}

li{list-style:none;}

h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}

abbr,acronym{border:0;font-variant:normal;}

sup{vertical-align:baseline;}

sub{vertical-align:baseline;}legend{color:#000;}

input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}input,button,textarea,select{*font-size:100%;}

body{font-size:12px;}

a{color: #333333;text-decoration: none;}

a:hover{text-decoration:underline; color:c00;}

上面这些是消除浏览器默认样式的代码----恩,我复制的。

/************style**************/

/*写滑动的时候定位得加上,fade方式的话可以不考虑*/

.slider_box{ /*最外层用来放置幻灯片的DIV*/

position: relative;

margin:0px auto;

overflow: hidden;

}

/*轮播器里的图片,因为我给每个图片加了个链接,所以是>a>img */

.slider_box>a>img{

position: absolute;

}

/*********左跳转触发器***********/

div.slider_box_left_turnTo{

background: url('../img/cho.png') no-repeat top left;

position: absolute;

left: 5%;

}

/*********右跳转触发器***********/

div.slider_box_right_turnTo{

background: url('../img/cho.png') no-repeat top right;

position: absolute;

right: 5%;

}

div.slider_box_left_turnTo:hover{

background-position: bottom left;

cursor: pointer;

}

div.slider_box_right_turnTo:hover{

background-position: bottom right;

cursor: pointer;

}

/*用来放置相关控制元素的盒子*/

div.slider_box_pointBox_turnTo{

width: 100%;

position: absolute;

background: rgba(0,0,0,0.4);

}

ul.slider_box_pointBox_turnTo{

position: absolute;

margin-left: -60px;

top:40%;

left: 45%;

}

/*图片对应的跳转点的样式*/

li.slider_box_point_turnTo{

background: url('../img/bnt.png') no-repeat top;

}

li.slider_box_point_turnTo:hover{

cursor: pointer;

}

/*用来放置图片介绍内容的盒子*/

div.slider_box_content{

position: absolute;

background: rgba(0,0,0,0.6);

width: 100%;

font-size: 15%;

color: #fff;

overflow: hidden;

}

4.jquery准备

首先给初学者介绍下图片轮播实现的基本原理,即:通过每隔一段时间(setInterval)触发(trigger)一次点击(鼠标悬浮)事件来完成一个功能。这个功能是:当鼠标点击(悬浮)的时候,某张图片完成一次animate动作。这个东西其实就是 给 点击滑动 加了个循环触发。

正餐来了

因为写这东我是要强调可拓展,可重用,所以基本都要把jquery代码分门别类放到函数中,通过函数间的调用来完成功能。(←_ ←|| 我又在装了!!)

相关参数/****************DATA_SET*******************/

var SLIDER_BOX_CLASS = ".slider_box", //要放置幻灯片的class名

SLIDER_BOX_WIDTH = 1024, //幻灯片图片的宽度(px)

SLIDER_BOX_HEIGHT = 640, //幻灯片图片的高度(px)

SLIDER_TYPE = "slider", //幻灯片动画的方式(slider,fade)

POINT_L_R_MARGIN = 20, //跳转点的左右外距(px)

NUM_OF_IMG = 3, //图片的张数

IMG_SRC = ["img/1.jpg","img/2.jpg","img/3.jpg"], //图片的地址,数组形式

IMG_LINK = ["#","#","#"], //每张图片对应的链接,轻按图片对应的顺序写入

AUTO_PLAY = true, //自动播放(true,false)

SPEED = 300, //动画运行的时间(ms)

TIME_DELAY = 4000, //自动跳转时的时间间隔(ms)

HOVER_STOP = false, //是否启用悬停效果(true,false)

CONTENT_SHOW = false, //是否显示内容盒子(true,false)

CONTENT_FONT_COLOR = "#FFF"; //盒子内容的字体颜色

⑴元素动态添加的功能集合//added about

//图片添加函数

//传递进来的参数从左往右代表的分别是:要放入图片的DIV类名,图片的数目

//,图片的地址(数组),对应图片的链接(数组,与图片顺序对应)

//,图片的宽度,图片的高度(这些其实和盒子大小是一样的)

//实现的过程是:通过循环把不同的图片和链接打包放入到DIV盒子中,因为

//我们在设置CSS的时候已经设了定位,所以不用担心样式的问题

//此段JS生成的html代码相当于:

//

//addr

//以后的代码的功能都类似(←_ ←上面是写给初学者的,大神可略过)

function Add_Img(slider_box_class,num,src,img_link,S_width,S_height){

var i,addr;

for(i=num-1;i>=0;i--)

{

addr = src[i];

$('',{

href : img_link[i],

html : $('',{

src : addr,

class : 'img_'+i,

width : S_width,

height: S_height

})

}).appendTo(slider_box_class);

}

}

//跳转点添加函数

//从左往右的参数是:点的数目(与IMG的张数一致且分别对应)

//,跳转点的左右外边距,以及存放跳转点盒子的高度值

//大家在这一段代码可能发现一些参数是有计算的,这是

//为了使内部的元素能够随幻灯片播放器的大小自动调整

//计算方法的话可以进行改变,我这里只是提供个参考,

//不过提醒一点的是大家改之前最好先看看控制元素对应图片的分辨率

//以免造成样式错位等问题

function Add_Point(num,point_l_r_margin,pointBox_height){

var i;

for(i=0;i<=num-1;i++)

{

$('

',{

class : 'slider_box_point_turnTo list_'+i,

style : 'margin- left:'+point_l_r_margin+'px;margin-right:'+point_l_r_margin+'px;float:left;height:'+(pointBox_height*16/42)+'px;width:'+(pointBox_height*17/42)+'px;background-size:'+(pointBox_height*17/42)+'px '+(pointBox_height*32/42)+'px;'

}).appendTo('ul.slider_box_pointBox_turnTo');

}

}

//跳转盒子添加函数

//参数从左往右是:最外层盒子class名,跳转盒子的宽,跳转盒子的高

//这里的代码看起来可能会有点乱,但没办法,我试过写简单点,但老是

//报错,所以就只能这样写了,如果大家有简单的写法欢迎来分享,留言就

//行了。因为跳转盒子里面要存放 左跳转的按钮,右跳转的按钮和跳转点

//所以html:"" 这里是按 左跳转,跳转点,右跳转的顺序添加的,不懂的话

//看下我代码的演示效果就行了

function Add_pointBox(slider_box_class,pointBox_width,pointBox_height){

$('

class : 'slider_box_pointBox_turnTo',

style : 'width:'+pointBox_width+'px;height:'+pointBox_height+'px;bottom:0px;',

html : '

}).appendTo(slider_box_class);

}

//内容盒子的设置

//参数的话大家应该能看懂了,都差不多

//其实这里我的本意是想写成接受后台数据的,但因为最近社团的活动

//就搁置了下来,大家如果有兴趣也看得起我这些代码的话,可以自行拓展

function ContentBox_Set(slider_box_class,content_show,color,S_width,S_height,pointBox_height){

if(content_show){

$('

class : 'slider_box_content',

style : 'color:'+color+';width:'+S_width+'px;height:'+(S_height*0.1+10)+'px;overflow:hidden;bottom:'+pointBox_height+'px;',

html : 'hello'

}).appendTo(slider_box_class);

}

}

⑵生成相关html的函数

//adjust about

//这里的话纯粹就是将前面那些生成html代码的元素给整合实现了

//我还加了个判断,当播放器的宽高小于某个值的时候会进行重置,

//因为当播放器很小的时候真的太难看了,所以强迫症的我弄了点处理措施

function Data_Adjust(slider_box_class,S_width,S_height,num,src,img_link,point_l_r_margin,content_show,color){

var pointBox_height = 24 + S_height/40;

if(S_width<=300 || S_height<=200)

{

S_width = 1024;

S_height = 640;

}

//slider box adjust

$(slider_box_class).css({'width':S_width,'height':S_height});

//content box adjust

Add_Img(slider_box_class,num,src,img_link,S_width,S_height);

Add_pointBox(slider_box_class,S_width,pointBox_height);

Add_Point(num,point_l_r_margin,pointBox_height);

ContentBox_Set(slider_box_class,content_show,color,S_width,S_height,pointBox_height);

}

⑶这里是跟显示相关的函数//show about

//这里基本上都是循环实现的过程

//跳转点样式变化

//当跳转到某张图片时,对应的跳转点设置为高亮

function Point_change(i){

$('.slider_box_point_turnTo').css({'background-position':'top'});

$('.slider_box_point_turnTo').attr('id',"");

$('.list_'+i).css({'background-position':'bottom'});

$('.list_'+i).attr('id','change_point');

}

//左滑动的效果实现

function Slider_left(slider_box_class,num,width,speed,i)

{

$(slider_box_class).find('img').not('.img_'+i).css({'left':width+'px'});

$(slider_box_class).find('img.img_'+i).animate({left:'-'+width+'px'},speed);

i==num-1?i=0:i++;

$(slider_box_class).find('img.img_'+i).animate({left:'0px'},speed);

}

//右滑动的效果实现

function Slider_right(slider_box_class,num,width,speed,i){

$(slider_box_class).find('img').not('.img_'+i).css({'left':'-'+width+'px'});

$(slider_box_class).find('img.img_'+i).animate({left:width+'px'},speed);

i==0?i=num-1:i--;

$(slider_box_class).find('img.img_'+i).animate({left:'0px'},speed);

}

//相关跳转点被点击时的事件处理函数,我这里用来live,但现在的jquery都

//不用live,改成on和off了,请大家自己注意,因为我写这个代码的时候还不

//知道,写完才知道的。后面也不想改了。请大家谅解

//这里的处理过程是:通过获取高亮的跳转点的class值来判断是哪张

//图片要进行跳转

function Type_slider(slider_box_class,num,width,speed){

var i = 0;

$('.list_'+i).css({'background-position':'bottom'});

$('.list_'+i).attr('id','change_point');

var long_class;

$(slider_box_class).find('div.slider_box_right_turnTo').live('click',function(){

long_class = $(slider_box_class).find('li#change_point').attr('class');

i = long_class.substring((long_class.length)-1);

if(!$(slider_box_class).find('img').is(':animated'))

{

Slider_left(slider_box_class,num,width,speed,i);

i==num-1?i=0:i++;

Point_change(i);

}

})

$(slider_box_class).find('div.slider_box_left_turnTo').live('click',function(){

long_class = $(slider_box_class).find('li#change_point').attr('class');

i = long_class.substring((long_class.length)-1);

if(!$(slider_box_class).find('img').is(':animated'))

{

Slider_right(slider_box_class,num,width,speed,i);

i==0?i=num-1:i--;

Point_change(i);

}

})

Point_click_slider(slider_box_class,width,speed);

}

//淡入淡出效果的实现函数

function Type_fade(slider_box_class,num,speed)

{

var i=0;

$(slider_box_class).find('img').not('.img_'+i).hide();

$('.list_'+i).css({'background-position':'bottom'});

$('.list_'+i).attr('id','change_point');

$(slider_box_class).find('div.slider_box_right_turnTo').click(function(){

if(!$(slider_box_class).find('img').is(':animated'))

{

$(slider_box_class).find('img.img_'+i).fadeOut(speed,function(){

i==num-1?i=0:i++;

$(slider_box_class).find('img.img_'+i).fadeIn(speed);

Point_change(i);

});

}

})

$(slider_box_class).find('div.slider_box_left_turnTo').click(function(){

if(!$(slider_box_class).find('img').is(':animated'))

{

$(slider_box_class).find('img.img_'+i).fadeOut(speed,function(){

i==0?i=num-1:i--;

$(slider_box_class).find('img.img_'+i).fadeIn(speed);

Point_change(i);

});

}

})

Point_click_fade(slider_box_class,num,speed);

}

⑷控制相关的函数

//control about

//跳转点被点击时触发的效果,两个函数:一个是滑动的触发,一个是fade的

//触发,这里的图片滑动方向的判断机制是:通过判断 被点击的点 与 当前点

//的位置来判断进行左移或者右移,fade函数无判断机制

function Point_click_slider(slider_box_class,width,speed){

var i,long_class;

$('.slider_box_point_turnTo').live('click',function(){

var this_li = event.target;

var P_class = $(this_li).attr('class');

var $length = P_class.length;

var j = P_class.substring($length-1);

long_class = $(slider_box_class).find('li#change_point').attr('class');

i = long_class.substring((long_class.length)-1);

if(j>i)

{

if(!$(slider_box_class).find('img').is(':animated'))

{

$(slider_box_class).find('img').not('.img_'+i).css({'left':width+'px'});

$(slider_box_class).find('img.img_'+i).animate({left:'-'+width+'px'},speed);

$(slider_box_class).find('img.img_'+j).animate({left:'0px'},speed);

Point_change(j);

}

}else if(j

{

if(!$(slider_box_class).find('img').is(':animated'))

{

$(slider_box_class).find('img').not('.img_'+i).css({'left':'-'+width+'px'});

$(slider_box_class).find('img.img_'+i).animate({left:width+'px'},speed);

$(slider_box_class).find('img.img_'+j).animate({left:'0px'},speed);

Point_change(j);

}

}

})

}

function Point_click_fade(slider_box_class,num,speed){

var i,long_class;

$('.slider_box_point_turnTo').live('click',function(){

var this_li = event.target;

var P_class = $(this_li).attr('class');

var $length = P_class.length;

var j = P_class.substring($length-1);

long_class = $(slider_box_class).find('li#change_point').attr('class');

i = long_class.substring((long_class.length)-1);

if(!$(slider_box_class).find('img').is(':animated'))

{

$(slider_box_class).find('img.img_'+i).fadeOut(speed,function(){

$(slider_box_class).find('img.img_'+j).fadeIn(speed);

Point_change(j);

});

}

})

}

//判断是否有悬停,是否自动播放,以及跳转的方式等等

function Slider_Control(slider_box_class,num,type,width,auto,speed,circle_time,hover_stop){

var Time_circle;

if(type=="slider")

Type_slider(slider_box_class,num,width,speed);

if(type=="fade")

Type_fade(slider_box_class,num,speed);

if(auto)

Time_circle = setInterval("Tri()",circle_time);

if(hover_stop){

$('.slider_box_pointBox_turnTo').hover(function(){

clearInterval(Time_circle);

},function(){

Time_circle = setInterval("Tri()",circle_time);

})

}

}

⑸最后是调用了

Data_Adjust(SLIDER_BOX_CLASS,SLIDER_BOX_WIDTH,SLIDER_BOX_HEIGHT,NUM_OF_IMG,IMG_SRC,IMG_LINK,POINT_L_R_MARGIN,CONTENT_SHOW,CONTENT_FONT_COLOR);

Slider_Control(SLIDER_BOX_CLASS,NUM_OF_IMG,SLIDER_TYPE,SLIDER_BOX_WIDTH,AUTO_PLAY,SPEED,TIME_DELAY,HOVER_STOP);

//这个是触发函数

function Tri(){

$('.slider_box_right_turnTo').trigger('click');

}

到这里我们的编写就基本完成了,实际上上述代码还是可继续拓展的,比如说通过判断调整内容区域显示的位置,或者添加新的跳转方式,或者将跳转点设置为相应的小图片等等。。虽然我不知道我到底写得算不算及格,但本人写可拓展性的代码的目的达到了,这里也和大家分享一下,欢迎大家多多交流。求大神轻喷!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据类型总结(干货)

Java中的数据类型和C的数据类型基本是一致的&#xff0c;本来以为不需要怎么看&#xff0c;后来发现还是有些地方需要好好总结一下。 基本的就不说了&#xff0c;直接上干货。 我总结了下&#xff0c;数据类型的转换和赋值有以下几点是比较麻烦的&#xff1a; 1、整数直接量可以…

计算机主机信息怎么看,本机电脑硬件配置信息怎么看?Win7/Win10查看详细电脑配置方法...

电脑配置决定了一台电脑的性能好坏&#xff0c;如果电脑配置没有达到游戏或者软件的要求&#xff0c;那么肯定无法流畅运行的。对于一些小白用户不知道如何查看电脑硬件配置&#xff0c;那么本机电脑硬件配置信息怎么看&#xff1f;下面装机之家小编分享一下Win7/Win10查看详细…

软件工程网络15个人阅读作业2(201521123024丁树乐)

提出问题 question1.我看到书P27中写到“100%的代码覆盖率并不等同于100%的正确性”那么怎么样去确保100%的正确性&#xff1f; 写代码注意结构和代码规范&#xff0c;注释要写全&#xff0c;代码尽量精简&#xff0c;不要一坨坨的堆在一起。 在目前行业内的成熟方案有如下几个…

Uva 1025 - A Spy in the Metro(DP)

题目链接 https://vjudge.net/problem/UVA-1025 【题意】 某城市里的地铁是线性的&#xff0c;有n个车站&#xff08;2<n<50&#xff09;&#xff0c;有M1辆列车从第1站从左往右开&#xff0c;有M2辆列车从第n站从右往左开&#xff0c;在0时刻间谍从第一站出发&a…

未来计算机控制器趋势,未来DCS控制系统技术发展4大趋势

DCS系统是继PLC之外的一大自动化控制系统&#xff0c;它在化工、火电等领域的应用极为广泛&#xff0c;但是生产方面的自动化技术需求进一步提高&#xff0c;传统的DCS系统已不能满足需要&#xff0c;需要进行技术升级。DCS系统由多台计算机分别控制生产过程中多个控制回路&…

《Java技术》第一次作业

&#xff08;一&#xff09;、学习总结 1.在java中通过Scanner类完成控制台的输入&#xff0c;查阅JDK帮助文档&#xff0c;Scanner类实现基本数据输入的方法是什么&#xff1f;不能只用文字描述&#xff0c;一定要写代码&#xff0c;通过具体实例加以说明。 文本扫描类Scanner…

计算机主机开机为什么显示器不开,电脑开机后显示器不亮怎么办?电脑开机后显示器没反应的解决办法...

电脑开机后显示器不亮怎么办&#xff1f;电脑开机故障屡见不鲜&#xff0c;最近又有用户反馈开机问题了&#xff0c;一用户反馈说&#xff0c;电脑主机是可以正常开机的&#xff0c;但就是显示器不亮&#xff0c;这是怎么回事呢&#xff1f;出现这种情况可能是显示器或主机故障…

斯坦福-随机图模型-week4.0_

title: 斯坦福-随机图模型-week4.0 tags: note notebook: 6- 英文课程-9-Probabilistic Graphical Models 1: Representation --- 斯坦福-随机图模型-week4.0 最大期望收入模型 简答的决策 我们使用随机图模型进行决策需要的原料是什么ne ? 我们需要决策的情景一些列的可能的行…

西北农林科技大学计算机老师 癌症,西北农林科大攻克苹果树“癌症”

由西北农林科技大学主持完成的“苹果树腐烂病等重大病害生物学及防治技术研究”项目&#xff0c;12月12日在陕西杨凌农科城通过鉴定。鉴定委员认为该成果在苹果树腐烂病菌、轮纹病菌的生物学基础研究方面达到了国际领先水平。我国苹果栽培面积和产量分别占世界总量的2/5和1/3&a…

计算机行业哪个会议论文最好,《第三次全国电子计算机专业学术会议论文选集》...

1964年12月&#xff0c;国防工业出版社出版了《第三次全国电子计算机专业学术会议论文选集》(以下简称《选集》)&#xff0c;由中国电子学会计算机专业委员会编辑&#xff0c;《选集》内容覆盖之广令人震惊。《选集》的内容表达了1961年以来国内计算技术在理论与实际方面的工作…

maven运行tomcat6出现错误Exception starting filter encodingFilter怎么解决

严重: Exception starting filter encodingFilterjava.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filterat org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.j…

windows系统OLLVM + NDK 混淆编译环境搭建

一、环境搭建&#xff1a; 系统&#xff1a;win10_X64 ndk版本&#xff1a;ndk-r12b&#xff08;ndk-r12b后续版本也适用&#xff09; cmake-3.9.1-win64-x64.msi 用于针对不同编译器生成源代码构建文件&#xff0c;如使用VS则生成(.sln)等VS配置文件&#xff0c;如果使用gcc则…

计算机组成实验微程序控制器实验,计算机组成原理实验报告3++微程序控制器实验.doc...

文档介绍&#xff1a;计算机组成原理实验报告3微程序控制器实验计算机组成原理实验报告实验三微程序控制器实验一.实验目的与要求:实验目的:1.理解时序产生器的原理,了解时钟和时序信号的波形;2.掌握微程序控制器的功能,组成知识;3.掌握微指令格式和各字段功能;4.掌握微程序的编…

展开符和解构赋值

一、展开符展开符(剩余操作符)&#xff1a;...1.展开符号use strict; let arr_one [1,3]; let arr_two [4,5,...arr_one]; console.log(arr_one);//[ 1, 3 ] console.log(...arr_one);//1 3 console.log(arr_two);//[ 4, 5, 1, 3 ]2.剩余操作符&#xff08;类似arguments&…

a开头的计算机语言,我们刚开始接触计算机语言大多从Hello world 开始

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼char szClassName[] "MainWnd";HINSTANCE hInstance;int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){HWND hwnd;MSG msg;WNDCLASSEX wincl;hInstance hInst;wincl.cbS…

2.1 linux C 进程与多线程入门--(1)进程和程序的区别

进程和程序的区别: j进程是活动的程序&#xff0c;而程序是一个代码的集合。进程是加载到内存中的程序&#xff0c;而程序没有加载到内存中&#xff0c;只是在磁盘上存储着。 1234567891011121314151617181920212223242526272829303132#include<sys/types.h>#include<…

计算机一级表格样式在哪儿,word表格样式在哪 word表格样式在哪里

word2007中设置好正文样式怎样设置表格样式1. 打开word(以2007为例)【开始】--> 【样式】&#xff0c;打开样式右下角的小箭头&#xff0c;或者alt shift ctrl S&#xff0c;打开全部式样 2. 在全部式样里&#xff0c;选择你要改的类型&#xff0c;点击该类型右边的下拉箭…

day11_用例执行顺序、跳过用例skip用法

用例执行顺序是按照test后面的字母排序进行的&#xff0c;字母靠前先执行&#xff0c;靠后后执行 import unittestclass My(unittest.TestCase): def test_a(self): print(haha) def test_z(self): print(哈哈哈哈)unittest.main() unittest提供了一些跳过…

计算机一级13点,2013年计算机一级考试MsOffice备考题及答案(13)

(11) 在操作系统中&#xff0c;文件管理的主要功能是A、实现文件的虚拟存取B、实现文件的高速存取C、实现文件的按内容存取D、实现文件的按名存取参考答案&#xff1a; D(12) 下列WINDOW 95桌面上图标的叙述中&#xff0c;错误的是A、所有的图标都可以重命名”B、图标可以重新排…

#和##在宏替换中的作用

#include <stdio.h>#define f(a,b) a##b#define g(a) #a#define h(a) g(a)int main(){ printf("%s/n",h(f(1,2))); printf("%s/n",g(f(1,2))); return 0;} 首先需要了解#和##的意义。 # 将右边的参数做整体的字符串替换。 #define g(a) #a 则g…