我正在使用流行的d3库的V3,并且基本上希望有三个转换,然后是彼此:第一个转换应该应用于退出选择,第二个应用于更新选择,第三个转换应用于输入选择.它们应该以这样的方式链接:当其中一个选择为空时,跳过其相应的转换.即,如果没有退出选择,则应立即开始更新选择.到目前为止,我已经提出了这个代码(使用该delay函数).
// DATA JOIN
var items = d3.select('#data').selectAll('.item');
items = items.data(data, function(d){
return d.twitter_screenname;
});
// EXIT
items.exit().transition().duration(TRANSITION_DURATION).style('opacity', 0).remove();
// UPDATE
// Divs bewegen
items.transition().duration(TRANSITION_DURATION).delay(TRANSITION_DURATION * 1)
.style('left', function(d, i) {
return positions[i].left + "px";
}).style('top', function(d, i) {
return positions[i].top + "px";
});
// ENTER
// Divs hinzufügen
var div = items.enter().append('div')
.attr('class', 'item')
.style('left', function(d, i) {
return positions[i].left + "px";
}).style('top', function(d, i) {
return positions[i].top + "px";
});
div.style('opacity', 0)
.transition().duration(TRANSITION_DURATION).delay(TRANSITION_DURATION * 2)
.style('opacity', …Run Code Online (Sandbox Code Playgroud) 我正在使用presentViewController从一个视图更改为另一个没有导航控制器,如:
let HomeView = self.storyboard!.instantiateViewControllerWithIdentifier("HomeView") as! ViewControllerHome
self.presentViewController(HomeView, animated:true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
如何改变过渡?我想像导航控制器一样动画.
我可以使用另一个转换,但我发现我想要的转换是我正在使用的代码
let HomeView = self.storyboard!.instantiateViewControllerWithIdentifier("HomeView") as! ViewControllerHome
HomeView.modalTransitionStyle = UIModalTransitionStyle.PartialCurl
self.presentViewController(HomeView, animated:true, completion: nil)
Run Code Online (Sandbox Code Playgroud) 我想要一个流图,如下例所示:http: //mbostock.github.com/d3/ex/stream.html

但是我想从右边输入实时数据并从左边离开旧数据,这样我总是有一个200个样本的窗口.我该如何做到这一点,以便我有适当的过渡?
我尝试更改数组a中的数据点,然后重新创建一个区域
data0 = d3.layout.stack()(a);
Run Code Online (Sandbox Code Playgroud)
但我的过渡并没有让它看起来像图表在屏幕上滑动.
提前致谢.
正如标题所暗示的那样,是否有正确的方法来设置一些初始CSS属性(或类)并告诉浏览器将这些转换为另一个值?
例如(小提琴):
var el = document.querySelector('div'),
st = el.style;
st.opacity = 0;
st.transition = 'opacity 2s';
st.opacity = 1;
Run Code Online (Sandbox Code Playgroud)
这不会为Chrome 29/Firefox 23中元素的不透明度设置动画.这是因为(来源):
[...]你会发现,如果你同时应用两组属性,那么浏览器会尝试优化属性更改,忽略初始属性并阻止转换.在幕后,浏览器在绘制之前批量处理属性更改,虽然通常会加快渲染速度,但有时会产生不利影响.
解决方案是在应用两组属性之间强制重绘.这样做的一个简单方法就是访问DOM元素的
offsetHeight属性[...]
事实上,黑客确实可以在当前的Chrome/Firefox版本中运行.更新了代码(小提琴 - Run打开小提琴后点击再次运行动画):
var el = document.querySelector('div'),
st = el.style;
st.opacity = 0;
el.offsetHeight; //force a redraw
st.transition = 'opacity 2s';
st.opacity = 1;
Run Code Online (Sandbox Code Playgroud)
但是,这是相当hackish,并报告在某些Android设备上不起作用.
另一个答案建议使用,setTimeout以便浏览器有时间执行重绘,但它也失败了,因为我们不知道重绘需要多长时间.猜测一个相当大的毫秒数(30-100?)以确保重绘意味着牺牲性能,不必要地闲置,希望浏览器在那么短的时间内执行一些魔术.
通过测试,我发现了另一种解决方案,它在最新的Chrome上运行良好,使用requestAnimationFrame(小提琴):
var el = document.querySelector('div'),
st = el.style;
st.opacity = 0;
requestAnimationFrame(function() {
st.transition …Run Code Online (Sandbox Code Playgroud) 我希望translateY通过JavaScript从内联css中获取价值.
这是内联值:
style ="transition-property: transform; transform-origin: 0px 0px 0px; transform: translate(0px, -13361.5px) scale(1) translateZ(0px);"
Run Code Online (Sandbox Code Playgroud)
这些代码给了我变量中的总列表:
var tabletParent = document.getElementById("scroller");
var toTop = tabletParent.style.transform;
console.log(toTop);
Run Code Online (Sandbox Code Playgroud)
console.log
translate(0px, -12358.8px) scale(1) translateZ(0px)
Run Code Online (Sandbox Code Playgroud)
预期toTop为-12358.8px.
我现在在Varsity学习C只有2个月了,明年我们将继续学习C++.
我的C编程是否有任何习惯,这将有助于将来向C++过渡,或者最好将它们完全分开考虑?
当你学习C然后C++时,你用C编码的方式是否以任何方式改变?
经过几年的Android工作后,我有兴趣开始在iOS平台上开发.在设计/编码iOS而不是Android时,可能会让我感到惊讶的主要事情是什么?
我无法通过按下按钮来确定如何将活动滑入和滑出.我想要的是用户按下按钮然后屏幕滑动.我想要的方式是第一个活动(带按钮的活动)向左滑动,而新的第二个活动从右侧滑入.
使用下面的代码,当单击该按钮时,当我希望它向左滑动时,第一个活动向右滑动.然后当它完成滑动时,剩下的就是黑屏一瞬间,然后第二个活动就会出现而不会滑入.
因此,第一个活动是滑出错误的方向,下一个活动只是出现而不是滑动.我究竟做错了什么?我很难理解XML文件,所以听到以下所有内容的代码.
第一项活动
@Override
public void onCreate(Bundle savedInstanceState) {
playBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainMenu.this, Levels.class);
startActivity(intent);
overridePendingTransition(R.anim.enter_from_right, R.anim.exit_out_left);
}
});
Run Code Online (Sandbox Code Playgroud)
第二项活动
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.levels);
overridePendingTransition(R.anim.enter_from_left, R.anim.exit_out_right);
Run Code Online (Sandbox Code Playgroud)
所以我认为我的一些XML文件可能不正确.他们来了.
enter_from_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="100%"
android:toXDelta="0%" >
</translate>
</set>
Run Code Online (Sandbox Code Playgroud)
enter_from_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="-100%"
android:toXDelta="0%" >
</translate>
</set>
Run Code Online (Sandbox Code Playgroud)
exit_out_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="0%" …Run Code Online (Sandbox Code Playgroud) 我有一个img标签,我想在悬停时更改src并且一切正常但我想添加一些转换,所以它看起来不那么粗糙但是因为它是一个img src我不能用css来定位它.
HTML
<img id="bg" src="img/img1.jpg">
<div onmouseover="imgChange('img/img2.jpg'); "onmouseout="imgChange('img/img1.jpg');">
Run Code Online (Sandbox Code Playgroud)
JS
function imgChange(im){
document.getElementById('bg').src=(im);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用一堆元素来构图背景图像,它们都绝对定位,自由旋转.
问题是,我想只转换那些对象的旋转,而不是顶部或左边的属性.显然transition: transform 30s;是不允许的.我有很棒的想法
transition:all 30s ease-out;
transition: left 0s;
transition: top 0s;
Run Code Online (Sandbox Code Playgroud)
但这也行不通.我怎么解决这个问题?