Ⅰ 我想把一个图片代码写到js了里面,然后调用这个js,就可以直接显示图片在网页上,怎么写
这个实现一抄般有两用方式
1.用js定义袭一个字符串变量,把图片的字符串写进去,然后div.innerhtml把这个字符串加进去。
2.用类似jquery的js插件,也是先定义图片字符串变量,然后div.append这个字符串就好了。
Ⅱ js+css 圆形/环形 排列
项目需要做个环形的导航排列,网上找到一篇详细介绍原理的文章 javascript-按圆形排列DIV元素(一)---- 分析 ,然后尝试着把它实现察扒知了此山,效果图如下:
源码分享给大家哦,拿走不谢O(∩_∩)O
vue版本的根败消据项目需求做了些略微的修改
Ⅲ js里面可以写轮播图吗
当然可以,css3就可以写轮播,只不过js写的轮播图兼容性更好,使用顺畅。
js实现轮播图主要是搞懂原理,还有js知识就OK啦
图片切换 是index值切换
换下一张 按钮实现功能
到最后一张回到第一张
第一张往上翻回到最后一张
写效果就OK啦
Ⅳ 怎么用js的原生写法写出来一个轮播图呢
1:排出一个版,包含上下切换的标识和图片导吵消航,所有图片隐藏,给图片第一张加一个class名,样式设为显示,图片导航的第一个加一个class名,加上背景色;
2:获取节点;
3:给向下切换写一个点击事件,点击图片切换到下一张,注意当图片切换到最后一张的时候会报错,所以必须要判断一下,当图片切换到最后一张的时候在,再次击会切换到第一张;
4:给向上切换写一个点击事件,注意当图片切换到第一张之后会报错,所以必须要判断一下,当图片切换到第一的时候,再次点击会切换到最后张,循环起来;
5:写一个定时器,定时器的播放顺序和向下切换一致,可以封装一个函数方便调用;
6:写鼠标划入事件,清除定姿祥时器;
7:写鼠标移出事件,定时器继续运行;
8:图片导升册知航的点击事件
点击事件click
定时器setlnterval()
if判断
for()循环
Ⅳ D3.js画图:3D动态饼图(齿轮图)
通常画可视化图的工具很多,除了d3.js,还有echarts.js等。
通过比较,看起来ECharts.js更容易上手,但是因为我需要更灵活更符合个性定制化的工具,所以选了d3.js。
经过一段时间的磨炼,从折线图、闭合路径图、蜂窝图、直角坐标、极坐标都玩了个遍。
那这次就来个3D的吧,其实d3.js做3D的图不是很容易的,有更好的选择,但我认准了d3.js,一条道走到黑吧(想起高中数学老师说的话,当你解题解到一半时发现有更好的办法,不,赶紧忘掉,接着当前的方法,只要方法没错,总能解出来,也许会傻一点,但是一定会有正确的结果;如果中途放弃,也许另一个方法更快更聪明,但也许更慢或者错误,不算到最后,谁都不知道谁最准确。我选择相信他的话,于是。。。我成了程序员O(∩_∩)O哈哈~)。
有人鄙视拿来主义,要我说,你能拿来那是你的本事,如果还能在此基础上做出更好的东西,何乐而不为呢?
每个人时间有限,每个项目也有deadline,不可能从每一个螺丝钉怎么拧开始学起,不然怎么会有那么多五花八门的框架,会有封装好的组件和接口,正因为有人已经做了前期工作,所以时间才能省下来做更有意义的事情,这就是站在巨人肩上的道理所在吧。
但是我们得明白拿来的东西的原理,以及出了问题该怎么解决的能力。然后才能做出更厉害的东西。
首选当然是官网的例子咯,目测搜了一圈,终于找到一个3D Donut。就是你了,我的巨人。
把该地址的donut3d.js拷贝下来作为画3D饼图的基础js,待会会在此基础上修改,以满足我的要求(长的像齿轮的要求)。
那我们就一睹她的芳容吧。
如果这张图符合你的要求,那就打住,不用往下看了,直接看官网例子即可。
注意d3版本的问题,如果你用d3.v3.js,恭喜你,啥也不用改,直接拿来用;如果你用d3.v5.js,那稍微改下方法,比如d3.v5.js没有d3.layout,所以d3.layout.pie改成d3.pie。我就是那个不幸的人,用的d3.v5.js。没关系,改起来很快,运行下,看哪里有错,就改哪里,O(∩_∩)O哈哈~so easy!
还是先上个我已经改好之后的3D饼图(齿轮图)吧,方便说明。
其实显示的时候是个动态的,一节一节显示出齿轮的。
背景是黑乎乎的,据说现在流行黑乎乎的背景,显得有科技感,技术也要赶时髦啊,我这么fashion的人,做出来的东西也要fashion啊O(∩_∩)O~
从以上分析可以看出,难啃的骨头在第4点。这个图断断续续花了3天时间才搞定,为啥是断断续续呢,因为还有其他工作要做嘛,你懂得。
那就按顺序一条一条实现,总有一天我们的愿望都能实现!
首先新建svg及设置宽高。
我是切分成了32个小齿轮(包含透明的),如果你想分的更细,可以分成40或50个,只要你觉得好看就行。
既然要分成32个小立体快,那数据也要切分成32个。
通过以上处理,把数据整合成可以生成齿轮的完整数据dataset。
如果不增加左侧面和右侧面,那调用donut3d.js的draw方法后,会生成什么样的图形呢?
请各位仔细看。
是不是有种被掏空的感觉?如果你觉得这样挺好看,那也行,打住吧,后面就不用再看了;如果你想补齐其他面,请耐心往下看。
经过观察和比较,增加左侧面和右侧面就能填满空虚的心啦啦啦~
这次要在donut3d.js这个巨人身上添砖加瓦咯。
然后再用新增加的两个方法画出左右侧面。
终于填满需要的每一面,看上去像个立体齿轮图了。
这个图是很久之前做的,当时花了很长时间调试,每一个面有4条边,定位2个点,再加上高度和内半径,就可以计算出4个点,然后就可以画出4条边,最后填充颜色,一个面就完成了。
最近整理文档时觉得有必要写出来,方便以后查阅和探讨,也告诉自己积累是一个长期过程,不急不躁,慢慢来,一步一步完成既定目标,总有一天你会走遍技术的每个角落。
现在我整理成vue组件,传一个百分比的参数,就可以显示3D齿轮图了,我的3D齿轮图也成巨人啦。
Ⅵ 请大神用js写出一个图片按照时间来变化,文字也随着变换!
<divstyle="width:100px;overflow:hidden"返游>
<ulid="imglst"style="width:500px">
<listyle="width:100px;float:left;"><!--这里面放图片和文字--></li>
<listyle="width:100px;float:left;"><!--这里面放图片和文字--></li>
<listyle="width:100px;float:left;"><!--这里面放图片和文字--></li>
<listyle="width:100px;float:left;"><!--这里面放图片和文字--></li>
<listyle="width:100px;float:left;"><!--这里面放图片和文字--></li>
</ul>
</div>
这里,使ul左(右、上、下)移动(变化、轮播),ul的宽度(左、右移动)就是ul下面的所有的li的宽度(上下)的总和
varswidth=100;//表示单个li的宽度(高度)
varrunTime;//定时器
varStime=3000;//每3秒变化一次饥春
varsptm=300;//变化过程所需要的时间
varsindex=0;//当前在第几张
varcountindex=4;//表示总张数
functionindex_Pics(){
clearInterval(runTime);//清除定时器
$("#imglst").animate({
"margin-left":-sindex*swidth//执行动画效果,ul左移
},sptm);
runTime=setInterval(function(){
if(sindex==countindex-1){
sindex=0;//当前是最后一张图片,位置改变为第一张
烂世耐}else{
sindex+=1;//否则加1
}
index_Pics();//定时器时间一到,重新执行方法
},Stime);
}
Ⅶ d3.js环形统计图代码
(function(){
mole.exports = function(weekNormal,weekHeight,weekLow,monthNormal,monthHeight,monthLow){
//周
var weekNormaldataset = [];
var weekHeightdataset = [];
var weekLowdataset = [];
weekNormaldataset[0] = weekNormal;
weekNormaldataset[1] = 100 - weekNormaldataset[0];
weekHeightdataset[0] = weekHeight;
weekHeightdataset[1] = 100 - weekHeightdataset[0];
weekLowdataset[0] = weekLow;
weekLowdataset[1] = 100 - weekLowdataset[0];
//月
var monthNormaldataset = [];
var monthHeightdataset = [];
var monthLowdataset = [];
monthNormaldataset[0] = monthNormal;
monthNormaldataset[1] = 100 - monthNormaldataset[0];
monthHeightdataset[0] = monthHeight;
monthHeightdataset[1] = 100 - monthHeightdataset[0];
monthLowdataset[0] = monthLow;
monthLowdataset[1] = 100 - monthLowdataset[0];
var width = 100;
var height = 100;
//周
var svg = d3.select(".oneWeekNormal")
.append("svg")
厅橡手 .attr("width", width)
.attr("height", height);
var svg1 = d3.select(".oneWeekHeight")
.append("svg")
.attr("width", width)
.attr("height", height);
var svg2 = d3.select(".oneWeekLow")
.append("svg")
.attr("width", width)
如梁 .attr("height", height);
//月
var svg3 = d3.select(".oneMonthNormal")
.append("svg")
.attr("width", width)
.attr("height", height);
var svg4 = d3.select(".oneMonthHeight")
.append("svg")
.attr("width", width)
.attr("height", height);
var svg5 = d3.select("扮嫌.oneMonthLow")
.append("svg")
.attr("width", width)
.attr("height", height);
var pie = d3.layout.pie();
//周
var weekNormalpiedata = pie(weekNormaldataset);
var weekHeightpiedata = pie(weekHeightdataset);
var weekLowpiedata = pie(weekLowdataset);
//月
var monthNormalpiedata = pie(monthNormaldataset);
var monthHeightpiedata = pie(monthHeightdataset);
var monthLowpiedata = pie(monthLowdataset);
var outerRadius = 50; //外半径
var innerRadius = 40; //内半径,为0则中间没有空白
var arc = d3.svg.arc() //弧生成器
.innerRadius(innerRadius) //设置内半径
.outerRadius(outerRadius); //设置外半径
var normalColor = ['#1BBD8F', '#E8EBED'];
var heightColor = ['#FF455B', '#E8EBED'];
var lowColor = ['#FF970C', '#E8EBED'];
//周
var arcs = svg.selectAll("g")
.data(weekNormalpiedata)
.enter()
.append("g")
.attr("transform","translate("+ (width/2) +","+ (width/2) +")");
arcs.append("path")
.attr('stroke-linecap', 'round')
.attr("fill",function(d,i){
return normalColor[i];
})
.attr("d",function(d){
return arc(d);
});
var arcs1 = svg1.selectAll("g")
.data(weekHeightpiedata)
.enter()
.append("g")
.attr("transform","translate("+ (width/2) +","+ (width/2) +")");
arcs1.append("path")
.attr('stroke-linecap', 'round')
.attr("fill",function(d,i){
return heightColor[i];
})
.attr("d",function(d){
return arc(d);
});
var arcs2 = svg2.selectAll("g")
.data(weekLowpiedata)
.enter()
.append("g")
.attr("transform","translate("+ (width/2) +","+ (width/2) +")");
arcs2.append("path")
.attr('stroke-linecap', 'round')
.attr("fill",function(d,i){
return lowColor[i];
})
.attr("d",function(d){
return arc(d);
});
//月
var arcs3 = svg3.selectAll("g")
.data(monthNormalpiedata)
.enter()
.append("g")
.attr("transform","translate("+ (width/2) +","+ (width/2) +")");
arcs3.append("path")
.attr('stroke-linecap', 'round')
.attr("fill",function(d,i){
return normalColor[i];
})
.attr("d",function(d){
return arc(d);
});
console.log(arcs3);
var arcs4 = svg4.selectAll("g")
.data(monthHeightpiedata)
.enter()
.append("g")
.attr("transform","translate("+ (width/2) +","+ (width/2) +")");
arcs4.append("path")
.attr('stroke-linecap', 'round')
.attr("fill",function(d,i){
return heightColor[i];
})
.attr("d",function(d){
return arc(d);
});
var arcs5 = svg5.selectAll("g")
.data(monthLowpiedata)
.enter()
.append("g")
.attr("transform","translate("+ (width/2) +","+ (width/2) +")");
arcs5.append("path")
.attr('stroke-linecap', 'round')
.attr("fill",function(d,i){
return lowColor[i];
})
.attr("d",function(d){
return arc(d);
});
//周
arcs.append("text")
.attr("text-anchor","middle")
.text(function(d){
return weekNormaldataset[0]+"%";
});
arcs1.append("text")
.attr("text-anchor","middle")
.text(function(d){
return weekHeightdataset[0]+"%";
});
arcs2.append("text")
.attr("text-anchor","middle")
.text(function(d){
return weekLowdataset[0]+"%";
});
//月
arcs3.append("text")
.attr("text-anchor","middle")
.text(function(d){
return monthNormaldataset[0]+"%";
});
arcs4.append("text")
.attr("text-anchor","middle")
.text(function(d){
return monthHeightdataset[0]+"%";
});
arcs5.append("text")
.attr("text-anchor","middle")
.text(function(d){
return monthLowdataset[0]+"%";
});
};
}).call(this);
Ⅷ 怎样用js实现文字的环形旋转
如果文字一直是正着的,
首先,要旋转,对象的位置必须是能改变,所以position要设置
然后选择其实就是改变它的left和top而已,而这两个的值,是用math.sin(),和math.cos()算出来的。
如果旋转文字本身,也就是文字是斜着的,则对其设置CSS的transform属性。
Ⅸ js3d环形旋转大小也变化
在three.js中,可以通过对环形物戚卖缺体的transform属性进行调整,来实现环形旋转大小的变化。具体的实现方法高辩如下:首先,创建一个圆环形的物体,然后设置该物体的transform属性,设置transform.scale.x和transform.scale.y的值,以此来控制环形物体的大小;然后设置transform.rotation.z的值,以此来控制环形物体的旋转角度。通过以上操作,可以实现three.js中配册环形旋转大小的变化。
Ⅹ 浅谈js写轮播图的思路与心得
1 、 首先我们需要在开始时将我们锁需要的封装函数链接进来。
列如 <script type="text/javascript" src="animate-2.0.1.js"></script>
而且我们必须得得到所有需要用到的对象用 getElementById 、getElementsByTagName,然后把需要一个规范的命名。
2 、第二部我们创建一个定时器先让轮播图中所有图片的 li 动起来
右边点袜吵击函数跟定时器所运动的函数一个样,所以我们可以封装一个函数abc();他们是共用的;
3 、 写出左边点击按钮事件的函数,这样就如上abc();差不多只是修改一些东西就行了;
4 、讲小圆点的样式改变封装成一个函数就是下面的chnage();
然后还得监听点击每个小圆点的事件,所以可以用for + onclick 讲每个小圆点点击事件给写出来。
难点:
1 、函数截留,当我们点击函哗好戚数正在执行时,如果多乱陵次点击就会出现图片运动混乱的现象,这是我们需要用if(picDiv.isanimated) {return;},
2 、cloneNode()函数picUl.appendChild(picLi[0].cloneNode(true))