当div悬停时,CSS过渡效果会移动div.
正如您在示例中看到的那样,问题是"转换"转换具有可怕的副作用,即使div中的图像向下/向右移动1px(并且可能稍微调整一下?)以使其显示出来的地方和焦点......
小故障似乎应用了悬浮效果的整个时间,并且从试验和错误的过程我可以肯定地说,只有当翻译过渡移动div时才会出现(框阴影和不透明度也被应用但是没有区别)删除时的错误).
在创建一个JSFiddle来说明问题时,我偶然发现了一个有趣的观察结果.只有页面有滚动条时才会出现此问题.所以只有一个div实例的例子很好,但是一旦添加了相同的div,因此页面需要滚动条,问题再次出现......
许多博客都表达了"欺骗"GPU以通过使用transform: translateZ(0)加速动画和过渡来认为元素是3D的性能提升.我想知道是否有以下方式使用此转换的含义:
* {
-webkit-transform: translateZ(0);
-moz-transform: translateZ(0);
-ms-transform: translateZ(0);
-o-transform: translateZ(0);
transform: translateZ(0);
}
Run Code Online (Sandbox Code Playgroud) 我有android翻译动画.我有一个随机生成位置的ImageView(next1,next2).我每隔3秒就调用一次虚空.它生成视图的新位置,然后制作动画并将视图移动到目标位置.翻译动画已实现AnimationListener.动画完成后,我将View永久移动到新位置(在OnAnimationEnd中).我的问题是动画位置与设置layoutParams位置不对应.当动画结束时,它会跳转到一个新位置,大约50-100像素.我认为位置应该是相同的,因为我在两种情况下都使用相同的值(next1,next2).请问您能找到找到溶剂的方法吗?
FrameLayout.LayoutParams pozice_motyl = (FrameLayout.LayoutParams) pozadi_motyl.getLayoutParams();
TranslateAnimation anim = new TranslateAnimation(Animation.ABSOLUTE,pozice_motyl.leftMargin, Animation.ABSOLUTE, next1, Animation.ABSOLUTE, pozice_motyl.topMargin, Animation.ABSOLUTE, next2);
anim.setDuration(1000);
anim.setFillAfter(true);
anim.setFillEnabled(true);
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(100, 100);
layoutParams.leftMargin = (int)(next1);
layoutParams.topMargin = (int)(next2);
pozadi_motyl.setLayoutParams(layoutParams);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
pozadi_motyl.startAnimation(anim);
Run Code Online (Sandbox Code Playgroud)
这是XML布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/pozadi0"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:background="@drawable/pozadi2"
>
<LinearLayout
android:id="@+id/pozadi_motyl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<ImageView android:id="@+id/obrazek_motyl"
android:src="@drawable/motyl"
android:layout_width="100dip" …Run Code Online (Sandbox Code Playgroud) 我有container里面的列表(卡)div .当我将它悬停时,卡片开始移动(translateX animation).container的width是300px,元件计数container:3,每一个元素width:100px.
所以你可以在容器中看到3个元素overflow:hidden.我要做的是,当没有元素在第三个元素之后显示translateX动画-100px = 100px空格时,它从最后一个列表中的1个元素开始,没有空格.
就目前而言,我不知道如何在没有重复等的情况下完成任务.
这就是我现在所拥有的: 小提琴(悬停卡看翻译动画)
UPD 1: 代码和数据(卡数,容器大小)例如,我将尝试更好地解释我想要的东西:我的目标是建立卡片列表,按下按钮后,列表将开始移动(比如在一些时间里使用translateX动画)(例如translateX:12491px,animation-duration:15s ;)并停止.但问题是列表中的碎片数量将在3-40张卡的范围内(每张卡的宽度和高度均为100px).因此,当我将translateX:12491px设置为例如,它将超出范围,并且在列表中的最后一张卡出现空白后.我希望第一张和最后一张卡以某种方式被捆绑,并且在最后一张卡片后立即出现在列表中的第一张卡片等等.也许我正在以错误的方式寻找解决方案,但我想你明白了主要想法.
UPD 2: 我发现cs:go使用我想在html\css\js上写的动画.这是视频:youtube.com
HTML:
<div class="container">
<div class="cards">
<div class="card">
1
</div>
<div class="card">
2
</div>
<div class="card">
3
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.container
{
width:300px;
height: 100px;
border: 2px solid black;
overflow: hidden;
}
.card
{
float:left;
height: 100px;
width: …Run Code Online (Sandbox Code Playgroud) 我想用CSS旋转图像90度.我可以进行旋转,但是图像的位置不是应该的.首先,它将覆盖同一div中的一些其他元素,其次,其垂直维度将变得大于包含div.这是我的代码
.imagetest img {
transform: rotate(270deg);
-ms-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-webkit-transform: rotate(270deg);
-o-transform: rotate(270deg);
width: 100%;
}
.photo {
width: 95%;
padding: 0 15px;
margin: 0 0 10px 0;
float: left;
background: #828DAD;
}Run Code Online (Sandbox Code Playgroud)
将两个类定义为
<article>
<section class="photo">
<div>Title</div>
<div class="imagetest">
<img src="https://picsum.photos/200/100"/>
</div>
</section>
</article>Run Code Online (Sandbox Code Playgroud)
有没有办法将图像保留在该部分内?我可以翻译和缩放图像,使其在部分内,但只有在我事先知道图像大小的情况下才有效.我想有一个不依赖于尺寸的可靠方法.
我正在使用自定义子类在我的应用程序中实现Material Design 底部工作表设计模式Dialog.对话框被吸引到屏幕的底部并使用y-translation窗口输入动画:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:interpolator/decelerate_cubic">
<translate android:fromYDelta="100%"
android:toYDelta="0"
android:duration="250" />
</set>
Run Code Online (Sandbox Code Playgroud)
在早期版本的Android,这看起来不错(如果我这样说我自己):对话顺利地从屏幕的底部,并从滑入下的导航栏.
但是,在最新的5.0预览图像上,窗口动画发生在导航栏的顶部,因此对话框内容暂时与导航重叠.在这个特殊的用例中,它看起来很丑陋,很奇怪并且令人分心.
我可以在主题或代码中设置什么来防止这种情况发生?
有没有办法Animation暂停半秒?
我正在尝试使用TranslateAnimationAPI 制作无限动画.所以,我使用RepeatCountas Infinite.我还注意到,有一种setStartOffset(...)方法可以涵盖我想要延迟启动动画的情况.但是,我无法在每次"重启"之前找到延迟的方法.由于动画会发生无限次,每次动画重新启动时我都需要延迟.
有任何想法吗?
谢谢!!
我想将一些视图从任何位置移动到屏幕中心并平行缩放.如果这太复杂,顺序翻译和缩放也是可以接受的.但我无法实现.我认为这是枢轴点的问题.但抱歉,我没有找到解决办法.请帮忙.也许这对开发游戏的人来说很容易,我什么也没做.
以下是我的代码:
private void moveViewToScreenCenter( final View view ){
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics( dm );
int statusBarOffset = dm.heightPixels - rootLayout.getMeasuredHeight();
int originalPos[] = new int[2];
view.getLocationOnScreen( originalPos );
int xDelta = (dm.widthPixels - view.getMeasuredWidth())/2 - originalPos[0];
int yDelta = (dm.heightPixels - view.getMeasuredHeight())/2 + statusBarOffset - originalPos[1];
AnimationSet animSet = new AnimationSet(true);
animSet.setFillAfter(true);
animSet.setDuration(1000);
animSet.setInterpolator(new BounceInterpolator());
TranslateAnimation translate = new TranslateAnimation( 0, xDelta , 0, yDelta);
animSet.addAnimation(translate);
ScaleAnimation scale = new ScaleAnimation(1f, …Run Code Online (Sandbox Code Playgroud) 我在ImageView中有一个子弹的图像,可以执行翻译动画.
我需要显示实时坐标以显示它与目标的实时距离.
ImageView myimage = (ImageView)findViewById(R.id.myimage);
Animation animation = new TranslateAnimation(100, 200, 300, 400);
animation.setDuration(1000);
myimage.startAnimation(animation);
animation.setRepeatCount(Animation.INFINITE);
Run Code Online (Sandbox Code Playgroud)
在进行TranslateAnimation时,是否可以获得图像的实时x和y坐标?
如果使用TranslateAnimation不可能,还有其他方法可以在运动时提供图像的实时坐标吗?
我试过了 -
int x = myimage.getLeft();
int y = myimage.getTop();
Run Code Online (Sandbox Code Playgroud)
和
int[] firstPosition = new int[2];
myimage.measure(View.MeasureSpec.EXACTLY, View.MeasureSpec.EXACTLY);
myimage.getLocationOnScreen(firstPosition);
int x = firstPosition[0];
int y = firstPosition[1];
Run Code Online (Sandbox Code Playgroud)
但在这两种方式中,它给出了ImageView的初始静态坐标.
我想对角线下的图像进行动画制作,如下图所示.我尝试过翻译动画,但我只能做平行的X轴或平行的Y轴.
但无法弄清楚如何对角地做到这一点.而且我也不确定是否可以通过翻译动画或其他类型的动画来完成.所以请建议我怎么做,或者如果有人能给我一个有用的链接,那么我也会被瞄准.

android ×6
css ×3
css3 ×2
image ×2
animation ×1
coordinates ×1
hover ×1
html ×1
html5 ×1
imageview ×1
javascript ×1
performance ×1
position ×1
positioning ×1
rotation ×1
scale ×1