首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >按角度以编程方式转换(旋转)一个元素

按角度以编程方式转换(旋转)一个元素
EN

Stack Overflow用户
提问于 2021-02-04 04:34:11
回答 3查看 1.1K关注 0票数 0

我是在角度框架中编码。当选择了特定的输入(cvv)时,我需要旋转一个元素(div) (翻转卡-内部)。

我不能使用:focus,因为输入元素不是我需要旋转的元素的兄弟或子元素。

这必须以编程的方式完成吗?任何帮助都将不胜感激。

当选择cvv输入时,灰色卡片应该旋转。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="container">
  <p-card>
    <div class="flip-card">
      <div class="flip-card-inner">
        <div class="flip-card-front">
          <img
            src="../../../../../assets/creditCard.svg"
            alt="Avatar"
            style="width: 50px; height: 50px; align-self: flex-end"
          />

          <p>{{ cardNumber }}</p>
        </div>
        <div class="flip-card-back">
          <h1>John Doe</h1>
          <p>Architect & Engineer</p>
          <p>We love that guy</p>
        </div>
      </div>
    </div>

    <div class="input-container">
      <label for="cardnumber">card number</label>
      <input type="text" pInputText [(ngModel)]="cardNumber" />
    </div>

    <div class="input-container">
      <label for="cardholder">card holder</label>
      <input type="text" pInputText [(ngModel)]="cardHolder" />
    </div>

    <div class="expiry-container">
      <div class="input-expiry">
        <label for="month">month</label>
        <input style="width: 65px" type="text" pInputText [(ngModel)]="month" />
      </div>

      <div class="input-expiry">
        <label for="year">year</label>
        <input style="width: 65px" type="text" pInputText [(ngModel)]="year" />
      </div>

      <div class="input-expiry">
        <label for="cvv">cvv</label>
        <input
          class="cvv"
          style="width: 65px"
          type="text"
          pInputText
          [(ngModel)]="cvv"
        />
      </div>
    </div>
  </p-card>
</div>

css

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.container{
    padding: 50px;
}

/* The flip card container - set the width and height to whatever you want. We have added the border property to demonstrate that the flip itself goes out of the box on hover (remove perspective if you don't want the 3D effect */
.flip-card {
    background-color: transparent;
    width: 440px;
    height: 280px;
    border: 1px solid #f1f1f1;
    perspective: 1000px; /* Remove this if you don't want the 3D effect */
  }
  
  /* This container is needed to position the front and back side */
  .flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.8s;
    transform-style: preserve-3d;
  }
  
  /* Do an horizontal flip when you move the mouse over the flip box container */
  /* .flip-card:hover .flip-card-inner{
    transform: rotateY(180deg);
  } */

 

  
  /* Position the front and back side */
  .flip-card-front, .flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden; /* Safari */
    backface-visibility: hidden;
  }
  
  /* Style the front side (fallback if image is missing) */
  .flip-card-front {
    background-color: #bbb;
    color: black;
    display: flex;
    justify-content: flex-end;
  }
  
  /* Style the back side */
  .flip-card-back {
    background-color: dodgerblue;
    color: white;
    transform: rotateY(180deg);
  }


  .input-container{
   display: flex;
   flex-direction: column;
   margin-bottom: 20px;
   margin-right: 10px;
  }

  .expiry-container{
    display: flex;
    flex-direction: row;
    margin-bottom: 20px;
    
  }

  .input-expiry{
    display: flex;
    flex-direction: column;
    margin-right: 15px;
  }

  input:focus  {
    background-color: lightgray;
  }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-04 05:13:22

您可以在组件中定义布尔属性(如isCVVFocused),并将其设置为true on 焦点事件和false on 聚焦。然后,可以在模板中使用此属性有条件地添加/删除css类,该类将为元素应用旋转样式。

票数 1
EN

Stack Overflow用户

发布于 2021-02-04 05:17:17

在在https://angular.io/guide/attribute-directives上触发的<input>处使用一个:focus。这应该添加一个CSS类到卡,使其旋转。之后,删除这个模糊类。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Directive, ElementRef, HostListener, Input, Renderer } from '@angular/core';
@Directive({
    selector: '[onFocus]',
})
export class OnFocusDirective {
    private el: ElementRef;
   
    constructor(private _el: ElementRef, public renderer: Renderer) {
        this.el = this._el;
    }

    @HostListener('focus', ['$event']) onFocus(e) {
        // set class
    }
    
    @HostListener('blur', ['$event']) onBlur(e) {
        // reset class
    }
}
票数 0
EN

Stack Overflow用户

发布于 2021-02-04 05:24:48

这就是你如何用角度来做的。这是stackblitz链接https://stackblitz.com/edit/angular-yca7ia?file=src/app/app.component.css

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import {
  Component,
  ElementRef,
  OnInit,
  Renderer2,
  ViewChild
} from "@angular/core";

@Component({
  selector: "my-app",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"]
})
export class AppComponent implements OnInit {
  cardNumber;
  cardHolder;
  month;
  year;
  cvv;
  @ViewChild("cardImg", { static: false }) cardImg: ElementRef;
  constructor(private elem: ElementRef, private renderer: Renderer2) {}

  ngOnInit() {}

  onCVVFocus() {
    this.renderer.addClass(this.cardImg.nativeElement, "img-rotate");
  }

  onFocusOut() {
    this.renderer.removeClass(this.cardImg.nativeElement, "img-rotate");
  }
}

增加了以下CSS:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.img-rotate {
  transform: rotate(90deg);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66045727

复制
相关文章
Android平台RTSP、RTMP播放端如何实现YUV或ARGB数据按设定角度旋转
做音视频RTSP或RTMP直播播放器的时候,不免会遇到这样的诉求,实时播放或快照的时候,由于前端摄像头安装角度不一定是正向,导致播放或快照的时候,视频view显示的画面是呈90° 180°甚至270°旋转的。
音视频牛哥
2022/10/16
6600
角度 弧度的转换_角度换算度分秒
可证得 一: 1度 = (π * 弧度)/180 = 弧度/60 => 度= 弧度*(π/180) 即 60度 = 弧度*(60*π/180)
全栈程序员站长
2022/11/17
1.3K0
Java实现图片无损任意角度旋转
在做项目的时候遇到一个业务需要对图片进行旋转,于是找到一个工具类,亲测有效;在此与大家共享,需要用时可以直接用哈! 一、旋转工具类代码:
崔笑颜
2020/06/08
3.8K0
以编程方式创建Vue.js组件实例
最近参与了一个Vue.js项目,项目中需要能够以编程方式创建组件。通过编程,意思是使用JavaScript创建和插入组件,而无需在模板中编写任何内容。
前端知否
2020/03/23
7.9K3
多个扇形元素绕圆旋转
这种效果有很多方案,最后选择了一个比较简单的方案,就是一个position: relative;的 div 。包裹5个position: absolute;的div。 通过旋转,调整5个div的 top 与 left,而产生弧度,并使中心点都指向圆心。 黄色扇形与文字 都是在5个div内部。
拿我格子衫来
2023/10/19
2590
多个扇形元素绕圆旋转
OpenCV 求外接矩形以及旋转角度
http://blog.csdn.net/wangyaninglm/article/details/43959947
流川疯
2022/11/29
6570
OpenCV 求外接矩形以及旋转角度
Unity 以一定角速度转向动态目标的旋转方式对比
②难以判断何时应该停止旋转,且角速度过大时很容易造成在到达目标向量附近来回鬼畜旋转
汐夜koshio
2020/07/15
2.4K0
OpenCV轮廓检测,计算物体旋转角度
http://blog.csdn.net/wangyaninglm/article/details/41864251
流川疯
2019/01/18
4.2K0
以编程方式执行Spark SQL查询的两种实现方式
摘 要 在自定义的程序中编写Spark SQL查询程序 1.通过反射推断Schema package com.itunic.sql import org.apache.spark.sql.SQLContext import org.apache.spark.{SparkConf, SparkContext} /**   * Created by itunic.com on 2017/1/2.   * Spark SQL   * 通过反射推断Schema   * by me:   * 我本沉默是关注互联
天策
2018/06/22
2K0
【CSS】标签显示模式 ③ ( 标签显示模式转换 | 行内元素转换为块级元素 | 块级元素转换为行内元素 | 块级元素、行内元素转换为行内块元素 )
在 CSS 样式中设置属性值 display: block; , 可以将 行内元素 转换为 块级元素 ;
韩曙亮
2023/03/30
1.5K0
【CSS】标签显示模式 ③ ( 标签显示模式转换 | 行内元素转换为块级元素 | 块级元素转换为行内元素 | 块级元素、行内元素转换为行内块元素 )
以小白的角度解读Koa源码
使用Koa已有一段时间,为什么会从Express转向Koa呢,那还是得从Express上说起。对于服务端的Web框架来说,Express更为贴近「Web Framework」这一概念,比如自带的路由,经过多年的运行,也使其生态丰富稳定。
JowayYoung
2020/04/01
8370
按块方式读写文件
第二种写法: 参数1:数据的地址 参数二:块大小 参数 3:块个数 参数4:文件指针 结构体数组存储时连续地址存储,所以可以填数组首地址
大忽悠爱学习
2021/03/02
3680
按块方式读写文件
css如何实现一个元素高度固定宽度按比例显示?
用padding-top百分比可以实现宽度固定高度按比例展示,现在的需求是对一个video视频的盒子div高度是固定的,宽度如何按比例展示?
蓓蕾心晴
2018/12/19
1.9K0
count_if按条件统计元素个数
区别:为什么count那里要加const,这边不要 因为count那里是进行元素比较操作,需要重载==运算符,要让底层识别,所以要加const 而这边是作为条件,将元素放入仿函数中看是否符合条件 总结:最好都加上const
大忽悠爱学习
2021/03/02
9960
count_if按条件统计元素个数
集合:按元素的中文属性排序
1. 要排序的元素类: public static class NameCount implements Comparable<NameCount> { Collator collator = Collator.getInstance(java.util.Locale.CHINA); @ApiModelProperty(value = "名") private String name; @ApiModelProperty(value =
微风-- 轻许--
2020/04/14
1.4K0
计算旋转一定角度后的向量
结论 图片 并且它们的模长相等。 推导 仅用到一点点极坐标和和角公式的内容: 图片
kifuan
2022/10/24
1.4K0
计算旋转一定角度后的向量
角度和弧度之间的转换
在编程中,我们经常会用到角度或者弧度,但是往往我们所得到的不是角度就是弧度,需要转换一下才能用到,这里我总结了角度和弧度之间的转换,
全栈程序员站长
2022/09/10
1.1K0
pandas按行按列遍历Dataframe的几种方式
iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问。 itertuples(): 按行遍历,将DataFrame的每一行迭代为元祖,可以通过row[name]对元素进行访问,比iterrows()效率高。 iteritems():按列遍历,将DataFrame的每一列迭代为(列名, Series)对,可以通过row[index]对元素进行访问。 示例数据
kirin
2021/04/30
7.1K0
域名与ip地址通过什么服务器转换?服务器以什么方式来转换?
域名与ip地址之间的关系,对于很多对网络设计原理较为熟悉的用户来说并不难以理解,但对于一些小白用户而言,却永远也弄不清楚两者之间为什么会有如此复杂的关系。那么域名与ip地址通过什么服务器转换?服务器以什么方式来进行转换呢?
用户8715145
2021/08/27
3.7K0
编程篇(015)-用最简单的方式,求一个数组中最大的元素
大家都知道,apply方法,第一个参数是对象this,第二个参数是一个数组集合。
齐丶先丶森
2022/12/05
2910

相似问题

以编程方式旋转UIViewController

12

以编程方式旋转UITextView

21

以编程方式“旋转”焦点

16

以编程方式旋转UIView

12

以编程方式旋转UINavigationController

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文